所以事情是我有一个对象,做一个计算密集型任务。如何使用线程池并重新加入java中的线程?
假设主类有两个这样的对象,我按以下方式对该过程进行了并行化。
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
obj1.compute();
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
obj2.compute();
}
});
t1.start();
t2.start();
t1.join();
t2.join();
但是,如果我有任意数量的对象,存储在列表中,那么最好的方法是什么? (假定数量为10)。我正在寻找执行者服务,但不知道如何重新加入线程。 ForkJoinPool应该这样做,但我找不到如何使其工作。
我的优先级是简单,清晰的代码,而不是性能(因为任何开销在计算需要10分钟内看不见)。
不是吗? – 2013-03-06 19:47:12