2009-11-10 157 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內核中實現線程,而是提供了選項來傳遞允許進程共享的標誌虛擬機,打開文件等。

希望這有助於。