GNU/Linux >> Linux の 問題 >  >> Linux

NPTL スレッドと POSIX スレッドの違いは何ですか?

最良の情報源はウィキペディアから始めて、そこからリンクをたどることだと思います.

実際には違いはありません。NPTL は POSIX スレッドの現在の Linux 実装に過ぎず、関数の pthread_* ファミリを引き続き使用します。 Linux の歴史の初期には、libpthreads と呼ばれる専用ライブラリが使用されていました。 NPTL は、2003 年頃に 2.6+ カーネル用に登場しました。詳細については、上記のリンクを参照してください。

[ところで:NPTL ==ネイティブ Posix スレッド ライブラリ]


「POSIX スレッド」は、スレッド化のための API を定義する「標準」です。つまり、 pthread_exit () などの機能を示しています など、システムに存在する必要があり、それらがどのように動作するかを説明します。すべての POSIX 準拠のオペレーティング システムは、独自の方法で POSIX スレッドを実装しています。

NPTL は、「Linux」(カーネル) が「POSIX スレッド」(標準) を効率的に実装できるようにする一連の機能です。

NPTL の詳細とその経緯については、こちらをご覧ください


POSIX スレッド (pthread) は実装ではなく、名前が pthread_ で始まるいくつかの関数の API 仕様 (標準、紙上、英語) です。 <pthread.h> で定義されているもの ヘッダ。 POSIX も一連の仕様です。

NPTL は現在、Linux の GNU Libc 内にあり、POSIX スレッドの実装です (または、少なくともそうしようと懸命に努力しています)。これは、Linux システム上のソース コードとバイナリ コードの集まりです。gcc -pthread でコンパイルされたアプリケーションです。 -pthread でリンクされています 現在、Linux で NPTL コードを使用しています。

補遺

pthread の代替実装が存在します -s:Linux では、MUSL Libc は Posix に準拠することを目指しています (つまり、pthreads を持つことを意味します)。他の Posix システム (AIX、Solaris など) にも pthread があります (ただし、それらは NPTL や Glibc ではありません)。


Linux
  1. InnoDBとMyISAMの違いは何ですか?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. RedhatとcentOSの違いは何ですか?

  1. insmodとmodprobeの違いは何ですか

  2. Cのstrtok_rとstrtok_sの違いは何ですか?

  3. adduser と useradd の違いは何ですか?

  1. ミューテックスとクリティカルセクションの違いは何ですか?

  2. $(CC) と $CC の違いは何ですか?

  3. unlink と rm の違いは何ですか?