我希望能够使用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()方法一样。
你试过查看循环屏障吗?它被优化为允许一组线程停止并等待,直到每个线程都到达公共屏障。我认为如果使用已知数量的池化线程和对公共屏障的引用,就可以使用它。如果需要在调用回调时同步等待await()计数到达,则可能会增加一些额外复杂性,因为它在不同的线程中执行。