【问题标题】:Create a user level thread or kernel level thread using `pthread_create`?使用`pthread_create`创建用户级线程或内核级线程?
【发布时间】:2014-10-04 00:17:00
【问题描述】:

问题:如何使用pthread_create创建用户级线程或内核级线程?

注意:我查看了this linkpthread_create 的文档,没有找到任何可以指定的参数来告诉操作系统创建用户级线程或内核级线程.那么如果没有参数那么默认使用pthread_create创建的线程是用户级还是内核级呢?

任何信息或提示都会很棒。

谢谢。

【问题讨论】:

  • POSIX 无法识别差异 — pthread_create() 创建一个新线程,仅此而已。因此,问题将变成:内核与用户线程是什么意思?您希望实现什么目标,为什么?

标签: c multithreading operating-system


【解决方案1】:

pthread_create 只是创建一个线程。不是“内核级线程”或“用户级线程”。后者是您可以用来讨论线程实现的描述,但就 POSIX 线程而言,如果每个线程都没有属于内核的一些相应的调度/状态对象,则没有实用的方法来实现线程。这是因为每个线程都有独立的信号掩码、未决信号等,并且可以在各种操作中独立阻塞,从而允许其他线程在被阻塞时继续前进。所以在某种意义上,你可以说pthread_create 创建了“内核级线程”。这当然是所有主要现实世界实现中的机制。

【讨论】:

    猜你喜欢
    • 2022-08-15
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 2017-05-04
    • 2017-01-04
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多