使用者級執行緒和核心級執行緒
一個執行緒是一個輕量級程序,可以由排程程式獨立管理。它使用並行性來提高應用程式效能。
一個執行緒與其對等執行緒共享資訊,例如資料段、程式碼段檔案等,同時它擁有自己的暫存器、堆疊、計數器等。
執行緒主要分為兩種型別:使用者級執行緒和核心級執行緒。下面是一個演示它們的圖表:
使用者級執行緒
使用者級執行緒由使用者實現,核心不知道這些執行緒的存在。它將它們視為單執行緒程序。使用者級執行緒小且比核心級執行緒快得多。它們由程式計數器 (PC)、堆疊、暫存器和一個小的程序控制塊表示。此外,使用者級執行緒的同步不需要核心參與。
使用者級執行緒的優點
使用者級執行緒的一些優點如下:
- 使用者級執行緒比核心級執行緒更容易建立且速度更快。它們也更容易管理。
- 使用者級執行緒可以在任何作業系統上執行。
- 使用者級執行緒的執行緒切換不需要核心模式許可權。
使用者級執行緒的缺點
使用者級執行緒的一些缺點如下:
- 使用者級執行緒中的多執行緒應用程式無法利用多處理的優勢。
- 如果一個使用者級執行緒執行阻塞操作,則整個程序將被阻塞。
核心級執行緒
核心級執行緒由作業系統直接處理,執行緒管理由核心完成。程序以及程序執行緒的上下文資訊都由核心管理。因此,核心級執行緒比使用者級執行緒慢。
核心級執行緒的優點
核心級執行緒的一些優點如下:
- 在核心級執行緒中,同一程序的多個執行緒可以排程到不同的處理器上。
- 核心例程也可以是多執行緒的。
- 如果一個核心級執行緒被阻塞,核心可以排程同一程序的另一個執行緒。
核心級執行緒的缺點
核心級執行緒的一些缺點如下:
- 在程序中從一個執行緒切換到另一個執行緒需要切換到核心模式。
- 與使用者級執行緒相比,核心級執行緒建立和管理的速度都較慢。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP