因此,我正在編寫一個介紹性的java程序來習慣多線程,但是,我對顯示器有點麻煩。特別是,當我進行素數[0] .notifyAll()調用時,下面的代碼段拋出IllegalMonitorStateException。如何確保java代碼部分有顯示器
Integer[] primes=new Integer[3];
if(primes[0]>0{
{
synchronized(primes[0]){
int returning=primes[0];
primes[0]=0;
primes[0].notifyAll();
return returning;}
}
我synchronized關鍵字的理解是,它保證你有監視器輸入代碼塊之前,所以通過邏輯我應該有一個notifyAll的()調用的監視器。我是否誤解了Java用於同步的策略,或者我在實現這個方法時是否存在一些錯誤?
啊,gotcha。非常感謝。 – Jonathan 2011-04-15 03:35:32