美文网首页
2021-05-14

2021-05-14

作者: 刘荣杰 | 来源:发表于2021-05-14 10:48 被阅读0次

1.线程池创建:

```

ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("StoreNoticeService-pool-%d").build();

  ExecutorService      executorService = new ThreadPoolExecutor(1, 4, 10L, TimeUnit.MINUTES, new LinkedBlockingQueue<>(400),

                namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());

```

线程池相关参数介绍:

1.corePoolSize :核心线程池数量

2.maximumPoolSize:最大线程池数量

3.超过核心线程池数量 线程休闲时  多久销毁

4.时间单位

5.阻塞队列,存储任务

6.生产线程工厂

7.拒绝策略

工作流程:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210513121215578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMDc5NDAy,size_16,color_FFFFFF,t_70)

2.线程池使用

```

List<CompletableFuture<SofaStoreContext>> futures = Lists.newLinkedList();

            checkerList.forEach(checker ->

                    futures.add(

                            CompletableFuture.supplyAsync(() ->

                                    checker.execute(storeContext), executorService)));

            //等待执行

            futures.forEach(CompletableFuture::join);

相关文章

网友评论

      本文标题:2021-05-14

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