在项目中创建如下工具类
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);
});
}

本文介绍了一个使用Java实现的简单并发压力测试工具。该工具通过创建指定数量的线程来模拟高并发场景,并使用CountDownLatch确保所有线程同步启动。每个线程执行的任务是生成并打印一个UUID,以此模拟业务操作。
1046

被折叠的 条评论
为什么被折叠?



