在项目中创建如下工具类
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
/**
* 压力测试工具类
*/
public class PressureTestUtil {
static CountDownLatch latch = null;
/**
* 创建线程模拟并发
* @param num 并发线程数
* @param task 线程执行任务
*/
private static void openTest(int num,Task task) {
long begin = System.currentTimeMillis();
latch = new CountDownLatch(num);
for (int i = 0; i < num; i++) {
new Thread (()->{
try {
latch.countDown();
latch.await();
task.invokeTask();
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
}
long end = System.currentTimeMillis();
System.out.println("cost time : " + (end - begin));
}
/**
* 具体压测业务
*/
@FunctionalInterface
public interface Task{
void invokeTask();
}
}
如下方法调用即可
public static void main(String[] args) {
//开启3000个线程,打印UUID
PressureTestUtil.openTest(3000,()->{
String s = UUID.randomUUID().toString();
System.out.println("invokeMethod uuid = " + s);
});
}