Java– 等待Runnable完成

Java– 等待Runnable完成,第1张

概述在我的应用程序中,我在后台线程上运行以下代码:MyRunnablemyRunnable=newMyRunnable();runOnUiThread(myRunnable);synchronized(myRunnable){myRunnable.wait();}/estofmycodeMyRunnable看起来像这样:publicclassMyRunnableimplementsRunnable{

在我的应用程序中,我在后台线程上运行以下代码:

MyRunnable myRunnable = new MyRunnable();runOnUiThread(myRunnable);synchronized (myRunnable) {    myRunnable.wait();}//rest of my code

MyRunnable看起来像这样:

public class MyRunnable implements Runnable {    public voID run() {        //do some tasks        synchronized (this) {            this.notify();        }    }}

我想在myRunnable完成执行后继续后台线程.我被告知上面的代码应该注意这一点,但有两件事我不明白:

>如果后台线程获取myRunnable的锁,那么在它能调用notify()之前不应该是myRunnable阻塞吗?
>我怎么知道在wait()之前没有调用notify()?

解决方法:

> myRunnable.wait()将释放myRunnable的锁并等待notify
>我们总是在等待之前添加支票.

//synchronized wait blockwhile(myRunnable.neeDWait){    myRunnable.wait();}//synchronized notify blockthis.neeDWait = false;myRunnable.notify();
总结

以上是内存溢出为你收集整理的Java – 等待Runnable完成全部内容,希望文章能够帮你解决Java – 等待Runnable完成所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://54852.com/web/1115023.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存