我的理解是POSIX线程(像pthread_create这样的东西)是用户级线程而不是内核级线程。也就是说,它们不会在狗窝中创建单独的过程。也就是说,如果我的C程序生成10个线程并运行PS命令,我不希望将每个线程视为一个单独的进程。我对此是否正确?
我使用Cygwin在Window 10下运行。如果我使用Linux,答案会有所不同吗?因此,我得出结论,POSIX线程是用户级别的。这是对的吗?
鲍勃
答案 0 :(得分:0)
POSIX没有指定必须如何实现线程,以及它们必须如何从程序员的角度来执行。
在大多数实际实现中,包括Linux上的Cygwin和glibc,POSIX线程实际上都是由各个内核级线程支持的。
这些线程是否显示在ps
命令下是一个单独的问题。通常,除非使用其他命令行选项(例如,ps
的procps-ng版本具有-L
命令行选项),否则它不会在同一进程中显示单个内核级线程。/ p>