今天学习时,学到一个新的知识点,做个笔记,就是如何模拟多线程高并发访问?思路是,使用CountDownLatch计时器,在启动线程时,手动阻塞,计时器减一,当计时器值为0时,取消所有阻塞,创建的所有线程就会立即执行,模拟瞬间的高并发访问,代码如下:
int count = 200;
CountDownLatch latch = new CountDownLatch (count);
for(int i=0;i<count;i++) {
new Thread() {
@Override
public void run() {
try{
latch .await();
//在此处执行要调用的接口
}catch(Exception e) {
}
}
}.start();//每循环一次,就启动一个新的线程
latch.countDown();//每启动一个新的线程,count--
}