我想执行以下算法 – 这必须在Java中完成
for(int i = 0; i< 100; i++){
create 8 threads which perform a task
wait for all threads to finish
}
由于开销(以及每个线程将具有<20毫秒的工作时间的事实),期望线程不被连续地创建和销毁,这带来了线程池1的想法.我也知道使用Executable2,可以调用shutdown,然后是awaitTermination.然而,在这种情况下由于循环是不可取的.那么如何进行线程同步呢?
我想在线程池中同步线程,就像使用传统线程的join()方法一样.
解决方法:
您是否尝试过查看Cyclic Barrier.它经过优化,允许一组线程停止并等待每个人都达到共同的障碍.我没有看到任何理由为什么它不能与已知数量的汇集线程一起使用,并引用了一个共同的障碍.如果您需要在使用障碍await()计数调用的回调上进行同步,则可能会有一些额外的复杂性,因为它在不同的线程中执行.