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