业务现象:代码中有一部分代码多次嵌套循环和数据处理,执行速度很慢
解决方案:通过多线程
1:启用多线程
private final static Executor executor = Executors.newFixedThreadPool(3);
2、初始化设置count,即等待(await)count个线程或一个线程count次计数,通过工作线程来countDown计数减一,直到计数为0,await阻塞结束;目的:保证所有线程都走完
final CountDownLatch latch = new CountDownLatch(dataList.size());
3、需要重新run .需要多线程的代码写在run中
@Override
public void run() {
//业务代码处理
//countDown计数减一
latch.countDown();
}
4、阻塞线程
// 等待所有工作线程结束
latch.await();
关键代码:
private final static Executor executor = Executors.newFixedThreadPool(3);//启用多线程
public Result getList(@RequestBody StatusDbSelectParam param){
PageHelper.startPage(param.getPageNum(), param.getPageSize());
L