OS Xでは、Mach+BSDなのでMach thread(cthread)とpthreadが使えるはずです。
で、久しぶりにAppleのTechNotes見てみました。
マルチスレッディングの話が出ているんですけど、
http://developer.apple.com/technotes/tn/tn2028.html
なかなかおもしろいです、このnoteは。
CMU Machでは、pthreadはUserレベルのスレッド、Mach threadはカーネルレベルのスレッド
ってのが普通ですが、OSXでは、pthreadはMach threadを元に書かれていて、
カーネルレベルのスレッドになっちゃったんですね。
あと、pthreadは、CarbonやCocoaなんかでも使えるとか書いてあるし。

で、ちょっと疑問に感じたので教えてください。
OS Xでのguidelineとして以下のことが触れられています:

User-space processes should not create Mach threads directly.

OSXだとcthreadが使えるじゃんと思ってたんですが、ここを読むとそうするべきじゃないようです。
なんで直接Mach thread(cthread)のシステムコールを呼ぶべきじゃないんでしょうか。
これってどういう理由なんでしょうかね。