【问题标题】:What type of threads does OS X have?OS X 有哪些类型的线程?
【发布时间】:2011-05-26 20:55:39
【问题描述】:

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

【问题讨论】:

    标签: multithreading macos parallel-processing bsd darwin


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      他们是Mach threads

      【讨论】:

      • 谢谢。这并不能直接回答我的问题,但从docs.google.com/… 看来这些是内核级别的
      • 嗯...在微内核中,实际上有两个内核:微内核和操作系统“内核”(实际上可能分布在多个任务中)。所以它们不是操作系统内核线程,而是微内核线程。
      猜你喜欢
      • 1970-01-01
      • 2011-12-31
      • 2011-12-08
      • 2016-12-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2017-10-07
      相关资源
      最近更新 更多