釋放鎖標記只有在Synchronized代碼結束或者調用wait()。

釋放鎖標記只有在Synchronized代碼結束或者調用wait()。java

注意鎖標記是本身不會自動釋放,必須有通知。多線程

注意在程序中斷定一個條件是否成立時要注意使用WHILE要比使用IF要嚴密。線程

WHILE會放置程序饒過判斷條件而形成越界。對象

補充知識:進程

suspend()是將一個運行時狀態進入阻塞狀態(注意不釋放鎖標記)。恢復狀態的時候用resume()。Stop()指釋放所有。it

這幾個方法上都有Deprecated標誌,說明這個方法不推薦使用。io

 

通常來講,主方法main()結束的時候線程結束,但是也可能出現須要中斷線程的狀況。對於多線程通常每一個線程都是一個循環,若是中斷線程咱們必須想辦法使其退出。循環


若是主方法main()想結束阻塞中的線程(好比sleep或wait)程序

那麼咱們能夠從其餘進程對線程對象調用interrupt()。用於對阻塞(或鎖池)會拋出例外Interrupted Exception。方法

這個例外會使線程中斷並執行catch中代碼。

 

多線程中的重點:實現多線程的兩種方式,Synchronized,以及生產者和消費者問題(ProducerConsumer.java文件)。

相關文章
相關標籤/搜索