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

2021-09-02 06:21:42 字數 704 閱讀 8865

讀書看到下面這一段,不太理解,就搜了一下,學了很多東西。

[img]

執行緒的實現可以分為兩類:使用者級執行緒(user-level thread)和核心線執行緒(kernel-level thread).後者又稱為核心支援的執行緒或輕量級程序.

使用者執行緒指不需要核心支援而在使用者程式中實現的執行緒,其不依賴於作業系統核心,應用程序利用執行緒庫提供建立、同步、排程和管理執行緒的函式來控制使用者執行緒。

核心執行緒: 由作業系統核心建立和撤銷。核心維護程序及執行緒的上下文資訊以及執行緒切換。乙個核心執行緒由於i/o操作而阻塞,不會影響其它執行緒的執行。windows nt和2000/xp支援核心執行緒

使用者執行緒:由應用程序利用執行緒庫建立和管理,不以來於作業系統核心。不需要使用者態/核心態切換,速度快。作業系統核心不知道多執行緒的存在,因此乙個執行緒阻塞將使得整個程序(包括它的所有執行緒)阻塞([color=red]此處存疑[/color])。[size=large][color=red]由於這裡的處理器時間片分配是以程序為基本單位,所以每個執行緒執行的時間相對減少。[/color][/size]

linux建立核心執行緒的函式是kernel_thread,kthread_create,kthread_run,標頭檔案在「linux/kthread.h」,有些作業系統(ubuntu)中可能預設找不到標頭檔案,要到/usr/src/linux-headers×/include目錄下複製

參考:[url]

[url]

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

根據在使用者空間還是在核心實現多執行緒機制,執行緒又被分為使用者級執行緒 user level thread 和核心級執行緒 kernel level thread 有關執行緒的所有管理工作都有在使用者級實現的執行緒庫來支援。使用者級執行緒庫是用於使用者級執行緒管理的例程包,支援執行緒的建立 終止,...

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

執行緒有3種實現模型 使用者級或應用程式級執行緒 核心級執行緒 使用者級和核心級混合執行緒 圖6 1顯示了3種執行緒實現模型。圖6 1 a 顯示了使用者級執行緒,圖6 1 b 顯示了核心級執行緒,圖6 1 c 則顯示了使用者執行緒和核心執行緒的混合。這些實現之間的較大的區別之一就是它們的模式以及要指...

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

6.1.1 使用者級執行緒和核心級執行緒 執行緒有3種實現模型 使用者級或應用程式級執行緒 核心級執行緒 使用者級和核心級混合執行緒 圖6 1顯示了3種執行緒實現模型。圖6 1 a 顯示了使用者級執行緒,圖6 1 b 顯示了核心級執行緒,圖6 1 c 則顯示了使用者執行緒和核心執行緒的混合。這些實現...