import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Console; import cn.hutool.core.text.StrFormatter; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.utils.wxpay.WxUtil; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.InputStream; import java.util.concurrent.*; public class ThreadTest { @Test public void test1() throws InterruptedException, ExecutionException, TimeoutException { CompletionService objectCompletionService = ThreadUtil.newCompletionService(); CountDownLatch countDownLatch = ThreadUtil.newCountDownLatch(4); objectCompletionService.submit(new Callable() { @Override public Object call() throws Exception { System.out.println("第一个任务"); try { return 1; } finally { countDownLatch.countDown(); } } }); objectCompletionService.submit(new Callable() { @Override public Object call() throws Exception { System.out.println("第二个任务"); // ThreadUtil.sleep(3000); try { return 2; } finally { countDownLatch.countDown(); } } }); objectCompletionService.submit(new Callable() { @Override public Object call() throws Exception { System.out.println("第三个任务"); try { return 3; } finally { countDownLatch.countDown(); } } }); objectCompletionService.submit(new Callable() { @Override public Object call() throws Exception { // int a=5/0; // ThreadUtil.sleep(11000); // ThreadUtil.sleep(3000); System.out.println("第四个任务"); try { return 4; } finally { countDownLatch.countDown(); } } }); long count = countDownLatch.getCount(); Console.log("latch:{}",count); countDownLatch.await(); for (int i = 0; i < 4; i++) { Object o= objectCompletionService.take().get(); System.out.println(o); } ThreadLocal threadLocal = ThreadUtil.createThreadLocal(false); threadLocal.set("123"); Object o = threadLocal.get(); System.out.println(o); } class A implements Runnable{ @Override public void run() { System.out.println("开始"); } } }