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);
网友评论