public void add() {
ExecutorService executor = newFixedThreadPool(3);
//?代表开启全部线程的数量
// 判断可是线程池可以结束
int pageSize = 10000;
int pageIndex = 1;
do {
int start = (pageIndex - 1) * pageIndex;
int end = pageSize * pageIndex;
executor.execute(new DoAdd(start, end));
pageIndex ++;
} while (pageIndex <10);
System.out.println("pageIndex--" + pageIndex);
executor.shutdown();
//等待所有任务都结束了继续执行
while(true){
try {
if(executor.isTerminated()){
System.out.println("所有的子线程都结束了!");
break;
}
Thread.sleep(1000);
}catch (Exception e){
e.printStackTrace();
}
}
}
private class DoAdd implements Runnable {
private int index;
private int page;
public DoAdd(int index, int page) {
this.index = index;
this.page = page;
}
@Override
public void run() {
for (int i = index; i < page; i++) {
//todo something
}
}
}