【发布时间】:2012-02-13 17:09:58
【问题描述】:
while(!anotherThread.isDone());
或
while(!anotherThread.isDone())
Thread.sleep(5);
【问题讨论】:
-
我相信他不是在等待另一个线程完成,而是在等待它发出完成某些任务的信号。所以 Thread.join() 是不合适的。也许你可以更具体地说明你想要做什么 Vig?
-
@jlewis42 我完全知道使用 Thread.join 方法我只是想知道是否使用 while(!anotherThread.isDone());将咀嚼大量的处理副 while(!anotherThread.isDone()) Thread.sleep(5);
-
这样的话,睡觉的肯定会更好。不休眠的只会继续检查,更糟糕的是,与您的工作线程竞争计算资源。
-
@jlewis42 不,不,不,请不要鼓励开发人员使用 sleep() 循环进行线程间通信!这种情况非常普遍,以至于 sleep() 现在被经验丰富的开发人员广泛描述为一种反模式,即使它有有效的用途(而且线程间通信不是其中之一)。
-
@Martin James 你觉得用 Thread.yield() 代替 sleep 怎么样?
标签: java multithreading