栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CompletableFuture异步编排 java8

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CompletableFuture异步编排 java8

 @Autowired
 private ThreadPoolExecutor executor;

//开启线程  supplyAsync() 是可以拿到任务执行够的返回值 
//runAsync() 返回的是void
 CompletableFuture task01= CompletableFuture.runAsync(() -> {
 // 业务代码
}, executor);

 CompletableFuture task02= CompletableFuture.runAsync(() -> {
 // 业务代码
}, executor);

 CompletableFuture task03= CompletableFuture.runAsync(() -> {
 // 业务代码
}, executor);

// 阻塞等待所有的任务执行完成 才可以执行下一步
// anyOf()等待其中一个线程完成就可以执行主线程了
 CompletableFuture.allOf(task01, task02, task03).get();
//主线程执行
return null;


===========注入线程池===============
@Configuration
public class MyThreadConfig {

    @Bean
    @Primary
    public ThreadPoolExecutor threadPoolExecutor(ThreadPoolConfigProperties pool) {
        return new ThreadPoolExecutor(pool.getCoreSize(),
                pool.getMaxSize(), pool.getKeepAliveTime(),
                TimeUnit.SECONDS, new LinkedBlockingDeque<>(100000),
                Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.AbortPolicy());
    }
}

@ConfigurationProperties(prefix = "xxx.thread")
@Component
@Data
public class ThreadPoolConfigProperties {
    private Integer coreSize;
    private Integer maxSize;
    private Integer keepAliveTime;
}
yaml 位置加上下面参数
xxx:
  thread:
    core-size: 20
    max-size: 200
    keep-alive-time: 10
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号