diff --git a/hutool-core/src/test/java/cn/hutool/core/thread/SyncUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/thread/SyncUtilTest.java new file mode 100644 index 000000000..846b4614d --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/thread/SyncUtilTest.java @@ -0,0 +1,36 @@ +package cn.hutool.core.thread; + +import cn.hutool.core.lang.Assert; +import org.junit.Test; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; + +/** + * CompletableFuture工具类测试 + * + * @author + * @since 2021/11/10 0010 21:15 + */ +public class SyncUtilTest { + + @Test + public void waitAndGetTest() { + CompletableFuture hutool = CompletableFuture.supplyAsync(() -> { + ThreadUtil.sleep(3, TimeUnit.SECONDS); + return "hutool"; + }); + CompletableFuture sweater = CompletableFuture.supplyAsync(() -> { + ThreadUtil.sleep(4, TimeUnit.SECONDS); + return "卫衣"; + }); + CompletableFuture warm = CompletableFuture.supplyAsync(() -> { + ThreadUtil.sleep(5, TimeUnit.SECONDS); + return "真暖和"; + }); + // 等待完成 + SyncUtil.wait(hutool, sweater, warm); + // 获取结果 + Assert.isTrue("hutool卫衣真暖和".equals(SyncUtil.get(hutool) + SyncUtil.get(sweater) + SyncUtil.get(warm))); + } +}