如何使Java线程等待另一个线程的输出?

如何使Java线程等待另一个线程的输出?,第1张

如何使Java线程等待另一个线程的输出?

我真的建议你在进入神奇的多线程世界之前,先阅读Sun的Java Concurrency之类的教程。

还有许多不错的书(有关“ Java并行编程”,“ Java并发实践”的Google书籍)。

为了得到你的答案:

在必须等待的代码中

dbThread
,你必须具有以下内容:

//do some worksynchronized(objectYouNeedToLockOn){    while (!dbThread.isReady()){        objectYouNeedToLockOn.wait();    }}//continue with work after dbThread is ready

在你dbThread的方法中,你需要执行以下 *** 作:

//do db worksynchronized(objectYouNeedToLockOn){    //set ready flag to true (so isReady returns true)    ready = true;    objectYouNeedToLockOn.notifyAll();}//end thread run method here

objectYouNeedToLockOn在这些示例中,我正在使用的对象最好是你需要从每个线程并发 *** 作的对象,或者你可以Object为此目的创建一个单独的对象(我不建议使方法本身同步):

private final Object lock = new Object();//now use lock in your synchronized blocks

进一步理解:
还有其他(有时更好)的方法可以完成上述 *** 作,例如使用CountdownLatches,等等。由于Java 5,java.util.concurrent程序包和子程序包中有许多漂亮的并发类。你确实需要在线查找资料以了解并发性,或获得一本好书。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4971814.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存