執行緒的6種狀態:
1、New新建狀態:執行緒剛被建立,start方法之前的狀態。
2、Runnable執行狀態:得到時間片執行中狀態,Ready就緒,未得到時間片就緒狀態。
3、Blocked阻塞狀態:如果遇到鎖,執行緒就會變為阻塞狀態等待另一個執行緒釋放鎖。
4、Waiting等待狀態:無限期等待。
5、Time_Waiting超時等待狀態:有明確結束時間的等待狀態。
6、Terminated終止狀態:當執行緒結束完成之後就會變成此狀態。
執行緒(英語:thread)是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務。在Unix System V及SunOS中也被稱為輕量程序(lightweight processes),但輕量程序更多指核心執行緒(kernel thread),而把使用者執行緒(user thread)稱為執行緒。
執行緒是獨立排程和分派的基本單位。執行緒可以為作業系統核心排程的核心執行緒,如Win32執行緒;由使用者程序自行排程的使用者執行緒,如Linux平臺的POSIX Thread;或者由核心與使用者程序,如Windows 7的執行緒,進行混合排程。
同一程序中的多條執行緒將共享該程序中的全部系統資源,如虛擬地址空間,檔案描述符和訊號處理等等。但同一程序中的多個執行緒有各自的呼叫棧(call stack),自己的暫存器環境(register context),自己的執行緒本地儲存(thread-local storage)。
一個程序可以有很多執行緒,每條執行緒並行執行不同的任務。
在多核或多CPU,或支援Hyper-threading的CPU上使用多執行緒程式設計的好處是顯而易見,即提高了程式的執行吞吐率。在單CPU單核的計算機上,使用多執行緒技術,也可以把程序中負責I/O處理、人機互動而常被阻塞的部分與密集計算的部分分開來執行,編寫專門的workhorse執行緒執行密集計算,從而提高了程式的執行效率。