Java 中你怎樣喚醒一個阻塞的線程?

 Java 發展史上曾經使用 suspend()、resume()方法對於線程進行阻塞喚醒 spa

隨之出現不少問題比較典型的仍是死鎖問題線程

解決方案能夠使用以對象爲目標的阻塞即利用 Object 類的 wait() notify() 對象

法實現線程阻塞同步

首先,wait、notify 方法是針對對象的調用任意對象的 wait()方法都將致使線程 it

阻塞阻塞的同時也將釋放該對象的鎖相應地調用任意對象的 notify()方法則 方法

將隨機解除該對象阻塞的線程但它須要從新獲取改對象的鎖直到獲取成功才 margin

能往下執行其次,wait、notify 方法必須在 synchronized 塊或方法中被調用top

而且要保證同步塊或方法的鎖對象與調用 wait、notify 方法的對象是同一個 解決方案

此一來在調用 wait 以前當前線程就已經成功獲取某對象的鎖執行 wait 阻塞後當 co

前線程就將以前獲取的對象鎖釋放

相關文章
相關標籤/搜索