如何在使用者空間實現執行緒?
執行緒是程序的輕量級元件。它是 CPU 利用的基本單元,由程式計數器、棧和一組暫存器組成。
以下是單執行緒程序的結構:
使用者空間中的執行緒
現在,讓我們看看如何在使用者空間實現執行緒。
步驟 1 - 完整的執行緒包放置在使用者空間,核心對此一無所知。
步驟 2 - 核心通常管理普通和單執行緒程序。
步驟 3 - 執行緒始終在執行時系統之上執行。
步驟 4 - 執行時系統是一組管理執行緒的過程。
例如 - pthread create,
pthread exit,
pthread join 和
pthread yield,
步驟 5 - 每個程序都需要自己的私有執行緒表來跟蹤該程序中的執行緒。
步驟 6 - 執行緒表始終跟蹤每個執行緒的屬性。
步驟 7 - 執行緒表由執行時系統管理。
以下是描述在使用者空間中實現執行緒的影像:
優點
在使用者空間中實現執行緒的優點如下:
不支援執行緒的作業系統,執行緒由庫實現。
它不需要對作業系統進行任何修改。
它始終提供更好的效能,因為核心中不涉及上下文切換。
每個程序都有自己的排程演算法。
缺點
在使用者空間中實現執行緒的缺點如下:
實現阻塞系統呼叫會導致所有執行緒停止。
如果一個執行緒開始執行,則除非該執行緒自願離開 CPU,否則其他執行緒無法執行。
廣告