如何在使用者空間實現執行緒?


執行緒是程序的輕量級元件。它是 CPU 利用的基本單元,由程式計數器、棧和一組暫存器組成。

以下是單執行緒程序的結構:

使用者空間中的執行緒

現在,讓我們看看如何在使用者空間實現執行緒。

步驟 1 - 完整的執行緒包放置在使用者空間,核心對此一無所知。

步驟 2 - 核心通常管理普通和單執行緒程序。

步驟 3 - 執行緒始終在執行時系統之上執行。

步驟 4 - 執行時系統是一組管理執行緒的過程。

例如 - pthread create,

pthread exit,

pthread join 和

pthread yield,

步驟 5 - 每個程序都需要自己的私有執行緒表來跟蹤該程序中的執行緒。

步驟 6 - 執行緒表始終跟蹤每個執行緒的屬性。

步驟 7 - 執行緒表由執行時系統管理。

以下是描述在使用者空間中實現執行緒的影像:

優點

在使用者空間中實現執行緒的優點如下:

  • 不支援執行緒的作業系統,執行緒由庫實現。

  • 它不需要對作業系統進行任何修改。

  • 它始終提供更好的效能,因為核心中不涉及上下文切換。

  • 每個程序都有自己的排程演算法。

缺點

在使用者空間中實現執行緒的缺點如下:

  • 實現阻塞系統呼叫會導致所有執行緒停止。

  • 如果一個執行緒開始執行,則除非該執行緒自願離開 CPU,否則其他執行緒無法執行。

更新於:2021-11-30

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告