複製鏈接
請複製以下鏈接發送給好友

用户線程

鎖定
用户線程指不需要內核支持而在用户程序中實現的線程,其不依賴於操作系統核心,應用進程利用線程庫提供創建、同步、調度和管理線程的函數來控制用户線程。
中文名
用户線程
外文名
User Thread
實現方式
用户層通過線程庫來實現
優    點
快速地創建和管理
缺    點
單核系統下,可能引起進程阻塞
用户線程(user-level threads)指不需要內核支持而在用户程序中實現的線程,其不依賴於操作系統核心,應用進程利用線程庫提供創建、同步、調度和管理線程的函數來控制用户線程。這種線程甚至在象 DOS 這樣的操作系統中也可實現,但線程的調度需要用户程序完成,這有些類似 Windows 3.x 的協作式多任務。
優點:1.線程位於用户空間(即不需要模式切換)。
2.完全控制線程調度器(例如:網站服務器)。
3.獨立於操作系統(線程可以在不支持它們的操作系統上運行)。
4.運行時系統(run time system)可以切換用户空間中的本地阻塞線程(例如:等待另一個線程完成).
缺點:1.系統調度中,對一個線程的阻塞將會導致整個進程阻塞;(例如:當一個線程因 I/O 而處於等待狀態時,整個進程就會被調度程序切換為等待狀態,其他線程得不到運行的機會)
2.網站服務器中,一個頁面的錯誤將導致整個進程阻塞。
3.非真正意義的線程並行(一個進程安排在單個CPU上)。
4.不存在時鐘中斷(例如,如果用户線程是非搶佔式(non-preemptive)的,將無法被“進程調度”(schedulers)以round-robin的調度算法調用,因為round-robin調度算法中限制了cpu時間片)。
用户線程不需要額外的內核開支,並且用户態線程的實現方式可以被定製或修改以適應特殊應用的要求,但是;而內核線程則沒有這個限制,有利於發揮多處理器的併發優勢,但卻佔用了更多的系統開支。