美文网首页
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