美文网首页
CompletableFuture小练习

CompletableFuture小练习

作者: HannahLi_9f1c | 来源:发表于2020-12-24 17:45 被阅读0次
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureDemo {
    public static void main(String [] args) throws InterruptedException, ExecutionException {
        CompletableFutureDemo completableFutureDemo = new CompletableFutureDemo();
        CompletableFuture t1 =
                CompletableFuture.supplyAsync(completableFutureDemo::getChannel)
                .thenApply(completableFutureDemo::protectMsg);
        CompletableFuture t2 =
                CompletableFuture.supplyAsync(completableFutureDemo::getLE)
               .thenApply(completableFutureDemo::getAccount)
                .thenApply(completableFutureDemo::getRout);
        CompletableFuture.allOf(t1,t2).join();
        System.out.println(t1.get());
        System.out.println(t2.get());
        CompletableFuture t = CompletableFuture.supplyAsync(completableFutureDemo::calculate)
                .thenApply(completableFutureDemo::res);
        System.out.println(t.get());

    }
    private String getChannel() {
        try {
            Thread.sleep(10L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "粗略查找符合条件的通道";
    }
    private String protectMsg(String s) {
        try {
            Thread.sleep(200L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return s+"维护信息";
    }
    private String getRout(String s) {
        try {
            Thread.sleep(15L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return s+"路由信息";
    }
    private String calculate() {
        try {
            Thread.sleep(20L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "可用性计算";
    }
    private String getLE()  {
        try {
            Thread.sleep(12L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "获取LE下账号";
    }
    private String getAccount(String s) {
        try {
            Thread.sleep(13L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return s+"获取账号家族";
    }
    private String res(String s) {
        try {
            Thread.sleep(20L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return s+"按规则相乘后排序并输出结果";
    }

}

相关文章

网友评论

      本文标题:CompletableFuture小练习

      本文链接:https://www.haomeiwen.com/subject/bsomnktx.html