カーネルレベルのスレッド (Linux や一部の *BSD システムなど) か、それとも何か? 違いがある場合は、pthreads を使用しています。
2 に答える
古い質問ですが、より詳細で正確なものを使用できます:
XNU (OS X および iOS カーネル) の基礎となるスレッドは確かに Mach スレッドですが、これらは通常、ユーザー モードから隠されています。代わりに、システム コール (#360、bsdthread_create、friends など) を介してよりアクセスしやすい BSD スレッド (uthread とも呼ばれます) がそれらの上にあります。PThreads は、実際にはこれらのスレッドをさらにラップします。このように、pthread create への呼び出しはシステム コール bsdthread_create にフォール スルーされ、システム コールは (カーネル モードで) thread_create を呼び出します。
Mach 呼び出しは、ユーザー モードから直接呼び出すことができます (Mach インターフェイス ジェネレーター、/usr/include/mach/* 内の MIG 生成ファイルを使用)。これは、スレッドのデバッグ/トレース/ハッキングに非常に役立ちます。ただし、それ以外の場合は、UNIX に似たすべての意図で、(ほとんどの場合) 移植可能な pthreads ラッパーを使用する方が適切です。
それらはマッハスレッドです。