應用場景:應用程式需要新建若干執行緒進行事務處理,這些執行緒處理完畢後,應用程式會進行一些後續的操作。
解決辦法:使用object.wait(),object.notify()方法。object.wait()方法會阻斷當前執行緒的執行,直到其他執行緒呼叫object.notify()。
於是可以很快的寫出乙個示例程式:
public
static
void main(string args)
} catch (interruptedexception e) }};
thread.start();
synchronized(syncobj) catch (interruptedexception e)
}system.out.println("exit");
}
呼叫wait和notify方法前,一定要用synchronized(syncobj),否則會丟擲illegalmonitorstateexception。
有空再寫寫concurrence util裡的工具類,簡化上面的操作。
JAVA中線程同步方法
在這裡看到的 1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要...
java中線程同步基礎
臨界區 臨界區是乙個用以訪問訪問共享資源的 塊,這個 塊在同一時間內只允許乙個執行緒執行。重入鎖 當末個執行緒請求乙個由其他執行緒持有的鎖時,發出的請求的執行緒就會阻塞,然而內建鎖 synchronized 是可重入的,因此如果末個執行緒試圖獲得乙個已經由他自己持有的鎖,那麼這個請求就會成功。syn...
JAVA中線程同步方法
1wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要注意幾點 第一點...