zoukankan      html  css  js  c++  java
  • Java8新特性学习笔记-CompletableFuture

    目录

    代码

    package test;
    
    import java.util.concurrent.CompletableFuture;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class CompletableFutureTest {
    
    	private static ExecutorService executorService = Executors.newFixedThreadPool(8);
    
    	public static void main(String[] args) throws InterruptedException {
    
    		// 创建异步执行任务:
    		CompletableFuture<Double> completedFuture = CompletableFuture.supplyAsync(() -> {
    
    			System.out.println("start");
    
    			try {
    				Thread.sleep(1000);
    			} catch (InterruptedException ignored) {
    			}
    			if (Math.random() < 0.3) {
    				throw new RuntimeException("fetch price failed!");
    			}
    
    			return 5 + Math.random() * 20;
    		}, executorService);
    
    		// 如果执行成功:
    		completedFuture.thenAccept((result) -> {
    			System.out.println("price: " + result);
    		});
    
    		// 如果执行异常:
    		completedFuture.exceptionally((e) -> {
    			e.printStackTrace();
    			return null;
    		});
    
    		Thread.currentThread().join();
    	}
    }
    
  • 相关阅读:
    插入排序
    2019何凯文五夜十篇
    文件
    结构体数组表示
    位运算应用
    条件编译 预处理命令
    文件包含
    带参宏定义
    宏定义有无参数宏定义和带参数宏定义两种
    phpcms v9网站搬家更换域名的方法
  • 原文地址:https://www.cnblogs.com/CSunShine/p/12689706.html
Copyright © 2011-2022 走看看