2009-10-23 89 views

回答

3

線程有時在用戶空間實現純(當時也被稱爲「綠線」),但通常在內核空間。 wikipedia article很好地解釋它。

5

在Linux中,pthread_create()等。作爲glibc項目的一部分實施。它使用(非可移植的,Linux特有的)系統調用clone()。 (linux的fork()是在clone()方面也實現)。某些BSD也有類似的系統調用rfork()

我的理解是,clone()rfork()都將創建一個新的進程,但你可以指定一個標誌,上面寫着:「使用寫入時複製語義給這個不同的地址空間」。所以,如果你想fork(),您可以指定標誌,但如果你想創建一個線程,你不這樣做,你結束了一個共享地址空間。

(編輯,以提供更多的細節)