使用 `pthread_create` 创建用户级线程或内核级线程?

标签 c multithreading operating-system

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

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

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

谢谢。

最佳答案

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

关于使用 `pthread_create` 创建用户级线程或内核级线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26188401/

相关文章:

c++ - 静态控件滚动条不工作 Win32

C 可变参数函数行为与 Erlang 驱动程序中预期的等效代码不同

澄清本书的解释和源代码 : #define BITCHUNK_BITS (sizeof(bitchunk_t) * CHAR_BIT)

python - 属性错误 : module 'os' has no attribute 'uname

c - C语言写入txt文件并打印数据

.net - 比较ProcessThread.Id中的CurrentThread

Java多线程文件读+操作+写

python - 一次读取成对的图像文件

linux - 为什么将getpid实现为系统调用?

windows - WaitForSingleObject 是否放弃线程的时间片?