4

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

4

2 回答 2

8

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

XNU(OS X 和 iOS 内核)中的底层线程确实是 Mach 线程,但这些线程通常对用户模式隐藏。相反,它们上有 BSD 线程(也称为 uthreads),它们更容易通过系统调用(例如#360、bsdthread_create 和friends)访问。PThreads 实际上进一步包装了这些线程。通过这种方式,对 pthread create 的调用会通过系统调用 bsdthread_create,然后(在内核模式中)调用 thread_create。

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

于 2012-08-26T17:23:46.373 回答
2

它们是马赫线程

于 2010-12-16T23:49:09.483 回答