package com.example.file;
import cn.hutool.core.thread.ThreadUtil;
import java.sql.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public class hutool {
public static void main(String[] args) throws InterruptedException {
test1();
}
/**
* 多线程实现线程等待的功能,所有线程的任务都指向完成后主线程才可以往下走
* @throws InterruptedException
*/
public static void test1() {
List<String> list = new ArrayList<>();
list.add("www");
//初始化线程数量
CountDownLatch countDownLatch= ThreadUtil.newCountDownLatch(8);
for(int i=0;i<8;i++){
int finalI = i;
ThreadUtil.execute(() -> {
try {
Thread.sleep(2000);
list.add("i-"+finalI);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("第"+ finalI +"个线程" );
//调用线程计数器-1
countDownLatch.countDown();
});
}
//唤醒主线程
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("完成");
list.add("jiehsu");
System.out.println(list);
}
}
hutool线程池
最新推荐文章于 2024-06-24 13:18:31 发布