1. 程式人生 > >201711671223《Java程式設計》第十一週學習總結 第12章Java多執行緒機制

201711671223《Java程式設計》第十一週學習總結 第12章Java多執行緒機制

201711671223《Java程式設計》第十一週學習總結 第12章Java多執行緒機制

作業系統與程序:程式是一段靜態的程式碼,它是應用軟體執行的藍本。程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。現代作業系統可以同時管理一個計算機系統中的多個程序,即可以讓計算機系統中的多個程序輪流使用CPU資源。

程序與執行緒:執行緒是比程序更小的執行單位,一個程序在其執行過程中,可以產生多個執行緒,形成多條執行線索,每條線索,即每個執行緒也有它自身的產生、存在和消亡的過程。執行緒間可以共享程序中的某些記憶體單元(包括程式碼與資料),執行緒的中斷與恢復可以更加節省系統的開銷。

 Java的多執行緒機制:Java語言的一大特性點就是內建對多執行緒的支援。Java虛擬機器快速地把控制從一個執行緒切換到另一個執行緒。這些執行緒將被輪流執行,使得每個執行緒都有機會使用CPU資源。

主執行緒(main執行緒):每個Java應用程式都有一個預設的主執行緒。當JVM(Java Virtual Machine 虛擬機器)載入程式碼,發現main方法之後,就會啟動一個執行緒,這個執行緒稱為“主執行緒”(main執行緒),該執行緒負責執行main方法。JVM一直要等到Java應用程式中的所有執行緒都結束之後,才結束Java應用程式 。

執行緒的狀態與生命週期:建的執行緒在它的一個完整的生命週期中通常要經歷如下的四種狀態:

新建: 當一個Thread類或其子類的物件被宣告並建立時,新生的執行緒物件處於新建狀態。

執行 :執行緒必須呼叫start()方法(從父類繼承的方法)通知JVM,這樣JVM就會知道又有一個新一個執行緒排隊等候切換了。一旦輪到它來享用CPU資源時,此執行緒的就可以脫離建立它的主執行緒獨立開始自己的生命週期了。   

中斷:有4種原因的中斷:

(1)JVM將CPU資源從當前執行緒切換給其他執行緒,使本執行緒讓出CPU的使用權處於中斷狀態。

(2)執行緒使用CPU資源期間,執行了sleep(int millsecond)方法,使當前執行緒進入休眠狀。

(3)執行緒使用CPU資源期間,執行了wait()方法。

(4)執行緒使用CPU資源期間,執行某個操作進入阻塞狀態。

死亡 :處於死亡狀態的執行緒不具有繼續執行的能力。執行緒釋放了實體。