java如何让线程等待_如何使Java线程等待另一个线程的输出?
我真的建議你經(jīng)歷一個教程,如
Sun’s Java Concurrency,你開始在多線程的魔法世界。
還有一些好書出來了(google for“Concurrent Programming in Java”,“Java Concurrency in Practice”)。
要得到你的答案:
在你必須等待dbThread的代碼中,你必須有這樣的:
//do some work
synchronized(objectYouNeedToLockOn){
while (!dbThread.isReady()){
objectYouNeedToLockOn.wait();
}
}
//continue with work after dbThread is ready
在你的dbThread的方法中,你需要做這樣的事情:
//do db work
synchronized(objectYouNeedToLockOn){
//set ready flag to true (so isReady returns true)
ready = true;
objectYouNeedToLockOn.notifyAll();
}
//end thread run method here
objectYouNeedToLockOn我在這些例子中使用的最好是需要從每個線程并發(fā)操作的對象,或者您可以為此目的創(chuàng)建一個單獨的對象(我不建議使方法本身同步):
private final Object lock = new Object();
//now use lock in your synchronized blocks
為了進(jìn)一步了解:有其他(有時更好的)方法來做上述,例如。與CountdownLatches等。從Java 5開始,在java.util.concurrent包和子包中有很多漂亮的并發(fā)類。你真的需要在線找到材料來了解并發(fā),或者得到一本好書。
總結(jié)
以上是生活随笔為你收集整理的java如何让线程等待_如何使Java线程等待另一个线程的输出?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 舞伴配对问题java_舞伴配对问题
- 下一篇: java开发高端说法_关于Java代码的