java - 避免等待终止的线程

标签 java multithreading

我遇到的问题是,有时我启动的线程在调用 wait() 之前就结束了。这似乎导致我的程序等待不会再次发生的事情 (notify())。我怎样才能确保不等待完成的线程?

void someFunction() {

  MyThread thread = new MyThread();

  thread.start();

  // .. some stuff that takes sometimes quite long

  synchronized(thread) {
    try {
      thread.wait();
    } catch(InterruptedException e) {
      // ..
    }
  }
}

最佳答案

如果您阅读 Thread 的 JavaDocs,它告诉您永远不会对 Thread 对象使用wait、notify 或 notifyAll。你应该使用 join()

关于java - 避免等待终止的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554127/

相关文章:

java - CAMEL 或其他企业集成框架是否更适合此用例?

android - 用于更新小部件的 AsyncTask - 如何访问 onPostExecute() 中的 TextView ?

c - 采用并行处理的 OpenMP 基本温度建模比串行代码花费的时间更长

python - Python + Twisted 中的消息队列代理

python - 使用 Python,如何在后台等待按键时在前台运行循环?

java - 'thread-safe' 在 Java 中的集合或数组的上下文中意味着什么?

java - 如何从java中的静态初始化 block 返回

java - 为什么我的 OpenGL 坐标系轴不是 [-1; 1]?

java - 在java中将数组对象作为方法参数传递

java - 当我多次运行基于 LWJGL 的 Java 应用程序时,为什么 NetBeans 会声明内存不足?