Native POSIX Thread Library

出自Local Chinese Wikipedia
imported>Ohtashinichiro2023年12月19日 (二) 09:23的修訂 (使用HotCat已添加Category:C POSIX library
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

Template:NoteTA 腳本錯誤:沒有「Lang」這個模塊。腳本錯誤:沒有「Lang」這個模塊。)是Linux內核中實踐POSIX Threads標準的函式庫。

測試表明,NPTL能夠成功地在IA-32平台上在兩秒鐘內生成100,000個線程;相應的沒有腳本錯誤:沒有「Lang」這個模塊。的內核將耗費15分鐘左右。[1][2]

歷史[編輯]

腳本錯誤:沒有「Lang」這個模塊。內核2.6出現之前進程是(最小)可調度的對象,當時的腳本錯誤:沒有「Lang」這個模塊。不真正支持線程。但是腳本錯誤:沒有「Lang」這個模塊。內核有一個系統調用指令腳本錯誤:沒有「Lang」這個模塊。,這個指令產生一個呼叫調用的進程的復件,而且這個復件與原進程使用同一地址空間。腳本錯誤:沒有「Lang」這個模塊。計劃使用這個系統調用來提供一個內核級的線程支持。但是這個解決方法與真正的腳本錯誤:沒有「Lang」這個模塊。標準有一些不相容的地方,尤其是在信號處理、進程調度和進程間同步原語方面。

要提高腳本錯誤:沒有「Lang」這個模塊。的效應很明顯需要提供內核支持以及必須重寫線程函式庫。為了解決這個問題出現了兩個互相競爭的項目:一個腳本錯誤:沒有「Lang」這個模塊。的組的項目叫做腳本錯誤:沒有「Lang」這個模塊。腳本錯誤:沒有「Lang」這個模塊。,下一代腳本錯誤:沒有「Lang」這個模塊。線程),另一個組是由腳本錯誤:沒有「Lang」這個模塊。程序員組成的。2003年中腳本錯誤:沒有「Lang」這個模塊。被放棄,幾乎與此同時腳本錯誤:沒有「Lang」這個模塊。公布了。

腳本錯誤:沒有「Lang」這個模塊。首次是隨腳本錯誤:沒有「Lang」這個模塊。發表的。此前老式的腳本錯誤:沒有「Lang」這個模塊。線程偶爾會發生系統無法產生線程的毛病,這個毛病的原因是因為在新線程開始的時候系統沒有藉機先占。當時的腳本錯誤:沒有「Lang」這個模塊。系統對這個問題的解決比較好。腳本錯誤:沒有「Lang」這個模塊。在關於腳本錯誤:沒有「Lang」這個模塊。上的腳本錯誤:沒有「Lang」這個模塊。的網頁上發表了一篇文章稱腳本錯誤:沒有「Lang」這個模塊。解決了這個問題[3]

從第3版開始腳本錯誤:沒有「Lang」這個模塊。腳本錯誤:沒有「Lang」這個模塊。的一部分,從腳本錯誤:沒有「Lang」這個模塊。內核2.6開始它被納入內核。目前它完全被結合入GNU C 函式庫

設計[編輯]

腳本錯誤:沒有「Lang」這個模塊。的解決方法與腳本錯誤:沒有「Lang」這個模塊。類似,內核看到的首要抽象依然是一個進程,新線程是通過腳本錯誤:沒有「Lang」這個模塊。系統調用產生的。但是腳本錯誤:沒有「Lang」這個模塊。需要特殊的內核支持來解決同步的原始類型之間互相競爭的狀況。在這種情況下線程必須能夠入眠和再復甦。用來完成這個任務的原始類型叫做腳本錯誤:沒有「Lang」這個模塊。

腳本錯誤:沒有「Lang」這個模塊。是一個所謂的1×1線程函式庫。用戶產生的線程與內核能夠分配的物件之間的聯繫是一對一的。這是所有線程程式中最簡單的。

參考資料[編輯]

外部鏈接[編輯]