java - hibernate 一个线程,直到另一个线程参加了一个事件

标签 java android multithreading

我在一个Android应用中有两个线程,一个是 View 线程,另一个是工作线程。我想要做的是,让工作线程 hibernate ,直到 View 线程终止对 onDraw 方法的处理。

我该怎么做?有没有等信号什么的?

最佳答案

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

stick.wait();

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

stick.notify();

注意 View 线程拥有对象上的监视器的要求。在您的情况下,这应该很容易通过一个小的同步块(synchronized block)来强制执行:

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

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

关于java - hibernate 一个线程,直到另一个线程参加了一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/121762/

相关文章:

java - 在 ASyncTask.execute() 之后从 Activity 执行 x()

javascript - 在javascript中的闭包之间使用变量是线程安全的吗?

java - 新的SingleThreadscheduledExecutor

Java:在鼠标单击事件上启动线程

java - 从 ASP.NET 向 Android 应用程序发送推送通知

java - 线程中的 Tomcat 死锁

android - ActivityResultContracts.StartActivityForResult() 结果只调用一次

JavaScript 测试网络 worker

java - Java 中 JTable 的 JDBC TableModel?

java - 如何在tomcat上处理2000+个请求/秒?