当前位置:  开发笔记 > 编程语言 > 正文

睡眠一个线程,直到在另一个线程中出现一个事件

如何解决《睡眠一个线程,直到在另一个线程中出现一个事件》经验,为你挑选了1个好方法。

我在Android应用程序中有两个线程,一个是视图线程,另一个是工作线程.我想要做的是,睡眠工作线程,直到视图线程终止onDraw方法的处理.

我怎么能这样做?有没有等待信号或什么?



1> Paul Brinkle..:

在两个线程之间共享一个java.lang.Object,其唯一目的是告诉工作线程何时可以继续工作.每当工作线程到达应该睡眠的点时,它都会这样做:

stick.wait();

当视图线程完成其onDraw工作时,它会调用:

stick.notify();

请注意视图线程拥有对象上的监视器的要求.在您的情况下,使用小型同步块执行此操作应该相当简单:

void onDraw() {
  ...
  synchronized (stick) {
    stick.notify();
  }
} // end onDraw()

在这些方法上查询java.lang.Object的javadoc(以及notifyAll,以防万一); 他们的写得非常好.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有