- 582 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 19:37:25.20 ]
- ちょっと聞いていい?
以下のコードでnotifyAllされたらどうなるのって質問 void A() synchronized(Lock){ if(List.size() == 0){ try{ Lock.wait(); }(Exception e){} } //以下処理続く } } このコードで複数のスレッドが待ち状態だったらnotifyAllとき再度Lockを取りに行ってくれるの? もし、そうだったとしたら。 結局はnotifyで1つのスレッドのみ動かすってのと同じことになるの? それとも再起処理的に以下のようにしなきゃだめ? void A() synchronized(Lock){ if(List.size() == 0){ try{ Lock.wait(); }(Exception e){} A(); ←ここでさらに再帰的に同じメソッドを呼び出す } //以下処理続く } } おしえてエロイひと。。。
|

|