【发布时间】:2011-06-30 11:05:02
【问题描述】:
我有固定数量的线程。我希望每个线程一个接一个地运行三个Runnables。这里有一些伪代码来解释:
Thread[] threads = new Thread[4];
for (int i = 0; i < threads.length; i++) {
// Set the first tasks.
threads[i] = new Thread(new FirstRunnable());
threads[i].start();
}
for (int i = 0; i < threads.length; i++)
threads[i].join(); // wait until the first tasks are done
for (int i = 0; i < threads.length; i++) {
// Set the second task.
threads[i].setRunnable(new SecondRunnable());
threads[i].start();
}
for (int i = 0; i < threads.length; i++)
threads[i].join(); // wait until the second tasks are done
...
使用ThreadPool 听起来有点矫枉过正,尤其是因为我要追求性能、性能、性能。在 Java 中实现这一点的最佳方法是什么?
【问题讨论】:
-
那里是
{0..3} -> 4线程和可运行对象 -
@Jon Skeet:我不想在所有
FirstRunnables 都未完成之前开始任何SecondRunnable。
标签: java multithreading runnable