OS X有哪些类型的线程?

时间:2010-12-16 23:44:18

标签: multithreading macos parallel-processing bsd darwin

内核级线程(如Linux和某些* BSD系统)还是其他什么?如果有任何差异,我正在使用pthreads。

2 个答案:

答案 0 :(得分:5)

旧问题,但可以使用更多细节和准确性:

XNU(OS X和iOS内核)中的底层线程确实是Mach线程,但这些线程通常是隐藏在用户模式下的。相反,它们上面有BSD线程(也称为uthreads),它们可以通过系统调用(例如#360,bsdthread_create和朋友)访问。 PThreads实际上进一步包装了这些线程。通过这种方式,对pthread create的调用将进入系统调用bsdthread_create,而系统调用bsdthread_create依次(在内核模式下)调用thread_create。

可以直接从用户模式调用Mach调用 (通过Mach接口生成器,在/ usr / include / mach / *中生成MIG文件)。这对非常有用,可用于调试/跟踪/黑客攻击线程。但除此之外,对于所有类似于UNIX的意图,你最好使用pthreads包装器(大多数情况下)是可移植的。

答案 1 :(得分:1)

他们是Mach threads