- 相關推薦
Java 如何進行線程同步
線程的同步知識也是公司面試必考知識,同學們在去面試前一定要復習一下,下面就給大家復習一下線程的知識:
線程在執行過程中,可以處于下面幾種狀態:
就緒(Runnable):線程準備運行,不一定立馬就能開始執行。
運行中(Running):進程正在執行線程的代碼。
等待中(Waiting):線程處于阻塞的狀態,等待外部的處理結束。
睡眠中(Sleeping):線程被強制睡眠。
I/O阻塞(Blocked on I/O):等待I/O操作完成。
同步阻塞(Blocked on Synchronization):等待獲取鎖。
死亡(Dead):線程完成了執行。
線程的同步主要靠下面幾個方法:
1、wait():使一個線程處于等待狀態,并且釋放所持有的對象的lock,注意wait的線程是不會自動喚醒的。
2、sleep():使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常,注意這個方法是不會釋放鎖的,而是持有鎖停止多少秒后自動喚醒。
3、notify():喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。
4、notityAll():喚醒所有處入等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
【Java 如何進行線程同步】相關文章:
Java線程同步的方法05-27
java多線程的同步和異步02-02
Java線程同步的優先級介紹04-10
java中如何停止線程08-14
如何使用java多線程05-04
如何創建并運行Java線程01-11
java多線程同步塊實例講解素材03-03
Java線程同步的優先級是什么04-24
關于java實現線程同步的方式有哪些06-01