線程的定義:線程(thread),臺灣地區譯為執行緒緒程,操作系統技術中的術語,是操作系統能夠進行運算調度的最小單位,它被包涵在進程之中,是行程中的實際運作單位。壹條線程指的是進程中壹個單壹順序的控制流,壹個進程中可以並行多個線程,每條線程並行執行不同的任務。在Unix SystemV及SunOS中也被稱為輕量進程(lightweight processes),但輕量進程更多指內核線程(kernel thread),而把用戶線程(user thread)稱為線程。計算機科學術語,指運行中的程序的調度單位。
線程(thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。壹條線程指的是進程中壹個單壹順序的控制流,壹個進程中可以並發多個線程,每條線程並行執行不同的任務。
線程是獨立調度和分派的基本單位。線程可以為操作系統內核調度的內核線程,如Win32線程;由用戶進程自行調度的用戶線程,如Linux平臺的POSIXThread;或者由內核與用戶進程,如Windows7的線程,進行混合調度。
同壹進程中的多條線程將***享該進程中的全部系統資源,如虛擬地址空間,文件描述符和信號處理等等。但同壹進程中的多個線程有各自的調用棧(callstack),自己的寄存器環境(registercontext),自己的線程本地存儲(thread-localstorage)。
壹個進程可以有很多線程,每條線程並行執行不同的任務。
線程與進程的區別如下:
1、進程是資源分配的最小單位,線程是資源調度的最小單位。
2、線程是在進程下運行的。壹個進程可以包含多個線程。
3、進程有自己的獨立地址空間,每啟動壹個進程,系統就會為它分配地址空間。而線程是***享進程中的數據的,使用相同的地址空間。
4、同壹進程下不同線程間數據容易***享,不同進程間數據很難***享。