我开发了一个应用程序,并且在给定的时刻,我开始大约10000个线程来对数据库进行压力测试。我想以下列方式同步它:我想从所有线程中的表中读取所有数据,然后我希望所有的步骤等待其他线程停止读取。在所有线程完成读取之后,我删除该表中的所有记录,然后我希望所有线程都插入先前读取的数据。现在,我如何同步我的线程,在前面提到的顺序中等待彼此?什么是最好的解决方案?
答案 0 :(得分:8)
CyclicBarriers在涉及固定大小的线程方的程序中非常有用,这些线程必须偶尔相互等待。
上面引用的JavaDoc中的示例解决了完全相同的问题。
答案 1 :(得分:3)
这可能不完全符合您的要求,但您可以查看CountDownLatch
允许一个或多个线程等待直到a的同步辅助 在其他线程中执行的操作集完成。