package com.pendanaan.utils;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class Test {
// 20个线程一起跑
private static ExecutorService executorService = Executors.newFixedThreadPool(20);
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(5);
//当前时间
Date now = new Date();
List<Date> list = Collections.synchronizedList(new ArrayList<>());
//拆分任务 为 5个任务
for(int j = 1 ; j <= 5; j ++){
int finalJ = j;
executorService.execute(new Runnable() {
@Override
public void run() {
try {
//定义每个任务的分层次, 第一个任务 当前时间 +1 +2 一直到+9
//第二个任务 当前时间 +10 +11 一直到 +19
//第五个任务 +40 一直到 +49
//一共五个任务 中间可以进行数据库操作 countDownLatch 等待任务结束
for(int i = (finalJ -1)*10; i < (finalJ *10) ; i++){
Calendar instance = Calendar.getInstance();
instance.clear();
instance.setTime(now);
instance.add(Calendar.DATE, i);
Date time = instance.getTime();
list.add(time);
System.out.println(Thread.currentThread().getName()+","+i+","+time);
}
}finally {
countDownLatch.countDown();
}
}
});
}
countDownLatch.await();
System.out.println("结束");
System.out.println(countDownLatch.getCount());
}
}