在java中同步大量线程的最佳方法

在java中同步大量线程的最佳方法,java,multithreading,stress-testing,jmeter,Java,Multithreading,Stress Testing,Jmeter,我开发了一个应用程序,在给定的时刻,我启动了大约10000个线程来对数据库进行压力测试。我希望通过以下方式进行同步:我希望从所有线程中的表中读取所有数据,然后我希望所有线程等待其他线程停止读取。在所有线程完成读取后,我将从该表中删除所有记录,然后我希望所有线程插入先前读取的数据。现在,我如何同步我的线程,以便按照前面提到的顺序彼此等待?最佳解决方案是什么?使用: CyclicBarrier在涉及固定大小的线程组的程序中很有用,这些线程有时必须互相等待 上面引用的JavaDoc中的示例解决了完全相

我开发了一个应用程序,在给定的时刻,我启动了大约10000个线程来对数据库进行压力测试。我希望通过以下方式进行同步:我希望从所有线程中的表中读取所有数据,然后我希望所有线程等待其他线程停止读取。在所有线程完成读取后,我将从该表中删除所有记录,然后我希望所有线程插入先前读取的数据。现在,我如何同步我的线程,以便按照前面提到的顺序彼此等待?最佳解决方案是什么?

使用:

CyclicBarrier在涉及固定大小的线程组的程序中很有用,这些线程有时必须互相等待

上面引用的JavaDoc中的示例解决了完全相同的问题



一万线?确保您正在测试数据库,而不是CPU和内存(上下文切换开销可能非常大)。您考虑过分布式模式吗?

这可能不是您想要的,但您可以看看

一种同步辅助工具,允许一个或多个线程等待 在其他线程中执行的一组操作完成