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

2021-06-21 14:11:47 字數 702 閱讀 2336



從執行緒實現的角度看,執行緒可以分成使用者級執行緒,核心級執行緒和輕量級執行緒。

在核心級執行緒的實現中,執行緒管理的所有工作由作業系統核心來做,核心專門提供api供開發者使用,應用程式區不需要有執行緒管理的**。核心級執行緒的優點:在多處理器上,核心能排程同一程序中多個執行緒併發執行;若程序中乙個執行緒被阻塞,核心能排程同一程序的其他執行緒占有處理器執行,也可以執行其他程序中的執行緒;由於核心執行緒僅有很小的資料結構和堆疊,因此核心級執行緒的切換比較快,核心自身也可以用多執行緒技術實現,從而提高系統的執行速度和效率。核心級執行緒的缺點:應用程式執行緒在使用者態執行,而執行緒管理和排程在核心實現,在同一程序中,控制權從乙個執行緒傳送到另乙個執行緒時需要使用者態-核心態-使用者態的模式切換,系統開銷較大。

在使用者級執行緒的實現中,執行緒管理的全部工作都由應用程式來做,在使用者空間內來實現,核心是不知道執行緒的存在的。使用者級多執行緒由使用者空間執行的執行緒庫來實現,任何應用程式均需要通過執行緒庫進行程式設計,再與執行緒庫連線後執行來實現多執行緒。使用者級執行緒的優點:執行緒切換不需要核心特權方式;按應用特定需要允許程序選擇排程演算法。使用者級執行緒的缺點:在傳統的基於程序作業系統中,大多數系統呼叫將阻塞程序,因此當執行緒執行乙個系統呼叫時,不僅該執行緒被阻塞,而且程序內的所有執行緒會被阻塞;不能成分利用多重處理的優點,即使在多處理機環境中,同一程序中的多個執行緒也不能真正並行。

windows上用api createthread()等建立的執行緒就是核心級執行緒.開源的pthread就是乙個使用者級執行緒。

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

根據在使用者空間還是在核心實現多執行緒機制,執行緒又被分為使用者級執行緒 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 則顯示了使用者執行緒和核心執行緒的混合。這些實現...