【问题标题】:Join multiple threads with timeout加入多个线程超时
【发布时间】:2015-05-13 14:54:27
【问题描述】:

我需要加入多个线程超时。类似于Thread.join(long millis),但用于多个线程。

我发现了一些关于加入多个线程的帖子,但不是关于加入超时的帖子。

我要更改的代码是:

for (Thread thread : threads) {
    thread.join(units.toMillis(timeout));
}

但这显然会分别等待每个线程,具有等待threads.length * timeout 的效果。我想等到timeout 的所有线程。

这样做的正确方法是什么?

【问题讨论】:

  • 这似乎有点模糊。你能发布你到目前为止的代码吗?
  • @bhspencer 我会将代码添加到我的帖子中。

标签: java multithreading


【解决方案1】:

听起来您正在尝试通过超时实现障碍。你有没有试过这个: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html

【讨论】:

  • 从我读到的关于 CyclicBarrier 的内容中,每个线程都必须自己调用 await() 方法,我希望一个线程等待其他线程完成。假设我不控制其他线程,如何使用 CyclicBarrier 呢?
猜你喜欢
  • 2012-11-24
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2016-07-10
  • 2020-03-17
  • 1970-01-01
相关资源
最近更新 更多