前言
我们在代码中经常需要使用for循环这个操作来达到目的。而当for循环的次数过多,以及多重for循环时,我们会发现执行效率会变的很低,整体耗时非常多。
本次我们就使用多线程并发的方式来对循环进行优化。
多线程并发实现
1. 创建线程池
// newFixedThreadPool是固定线程池,10代表线程池数量
ExecutorService pool = Executors.newFixedThreadPool(10);
2. 写for循环,并在for循环中创建Runnable对象
for (int i = 0 ; i < groupValues.size() ; i++) {
SitGroupPortray groupValue = groupValues.get(i);
// 创建Runnable对象
Runnable runnable = new Runnable() {
// 重写runnable对象中的run方法
@Override
public void run() {
// 业务逻辑
}
};
// 步骤1 中创建的线程池对runnable对象调用
pool.execute(runnable);
}
3. 关闭线程池
// 步骤1 中线程池,进行关闭
pool.shutdown();
4. 之后需要做一个判断,判断只有所有的线程都执行完才能往下执行
while(true){
if(pool.isTerminated()){
break;
}
}