線程一般被定義爲一個進程中代碼的不一樣執行路線。從實現方式上劃分,線程有兩種類型:「用戶級線程」和「內核級線程」。
用戶線程指不須要內核支持而在用戶程序中實現的線程,其不依賴於操做系統核心,應用進程利用線程庫提供建立、同步、調度和管理線程的函數來控制用戶線程。這種線程甚至在象 DOS 這樣的操做系統中也可實現,但線程的調度須要用戶程序完成,這有些相似 Windows 3.x 的協做式多任務。另一種則須要內核的參與,由內核完成線程的調度。其依賴於操做系統核心,由內核的內部需求進行建立和撤銷,這兩種模型各有其好處和缺點。用戶線程不須要額外的內核開支
,而且用戶態線程的實現方式能夠被定製或修改以適應特殊應用的要求,可是當一個線程因 I/O 而處於等待狀態時,整個進程就會被調度程序切換爲等待狀態,其餘線程得不到運行的機會;而內核線程則沒有各個限制,有利於發揮多處理器的併發優點,但卻佔用了更多的系統開支。
Windows NT和OS/2支持內核線程。Linux 支持內核級的多線程。多線程