2009-11-10 135 views

回答

0

你不能。

pthreads用于用户级进程而不是内核。内核线程比pthread更“轻量级”(例如,具有非常小的固定长度堆栈)。 kthread_create用于在linux中创建内核线程。

+1

“内核线程”具有“线程(用于用户空间进程)实现为独立内核级线程”的常用含义,而不是完全在用户空间中实现的线程。 – caf 2009-11-12 23:18:39

2

POSIX不指定线程是在用户空间还是内核中实现 - 这取决于实现。

所以答案是:pthread_create,只要你的实现使用内核线程。如果你在Linux上使用glibc,你会没事的。

+0

除了glibc通常没有链接到内核中,即使它是,pthreads也不会是内核线程 - 它们只是在内核空间中运行的pthread。 – Dipstick 2009-11-12 19:44:35

+0

“内核线程”通常表示对内核*可见的线程,而不是内核中的控制线程。例如,参见这篇维基百科文章:http://en.wikipedia.org/wiki/Thread_%28computer_science%29(这是术语的常用用法)。 – caf 2009-11-12 23:20:57

1

只是为了给你一点背景,其他操作系统在solaris,windows等内核中都有进程和线程。但是linux并没有在linux内核中实现线程,而是提供了选项来传递允许进程共享的标志虚拟机,打开文件等。

希望这有助于。