使用者級執行緒和核心級執行緒


一個執行緒是一個輕量級程序,可以由排程程式獨立管理。它使用並行性來提高應用程式效能。

一個執行緒與其對等執行緒共享資訊,例如資料段、程式碼段檔案等,同時它擁有自己的暫存器、堆疊、計數器等。

執行緒主要分為兩種型別:使用者級執行緒和核心級執行緒。下面是一個演示它們的圖表:

User-level threads and Kernel-level threads

使用者級執行緒

使用者級執行緒由使用者實現,核心不知道這些執行緒的存在。它將它們視為單執行緒程序。使用者級執行緒小且比核心級執行緒快得多。它們由程式計數器 (PC)、堆疊、暫存器和一個小的程序控制塊表示。此外,使用者級執行緒的同步不需要核心參與。

使用者級執行緒的優點

使用者級執行緒的一些優點如下:

  • 使用者級執行緒比核心級執行緒更容易建立且速度更快。它們也更容易管理。
  • 使用者級執行緒可以在任何作業系統上執行。
  • 使用者級執行緒的執行緒切換不需要核心模式許可權。

使用者級執行緒的缺點

使用者級執行緒的一些缺點如下:

  • 使用者級執行緒中的多執行緒應用程式無法利用多處理的優勢。
  • 如果一個使用者級執行緒執行阻塞操作,則整個程序將被阻塞。

核心級執行緒

核心級執行緒由作業系統直接處理,執行緒管理由核心完成。程序以及程序執行緒的上下文資訊都由核心管理。因此,核心級執行緒比使用者級執行緒慢。

核心級執行緒的優點

核心級執行緒的一些優點如下:

  • 在核心級執行緒中,同一程序的多個執行緒可以排程到不同的處理器上。
  • 核心例程也可以是多執行緒的。
  • 如果一個核心級執行緒被阻塞,核心可以排程同一程序的另一個執行緒。

核心級執行緒的缺點

核心級執行緒的一些缺點如下:

  • 在程序中從一個執行緒切換到另一個執行緒需要切換到核心模式。
  • 與使用者級執行緒相比,核心級執行緒建立和管理的速度都較慢。

更新於: 2023年11月4日

26K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.