线程池

2020-08-26  本文已影响0人  策马踏清风

降低线程创建和销毁的消耗,提高速度,节约资源,线程可管理。

参数含义

  1. AbortPolicy抛出异常,默认
  2. CallerRunsPolicy调用者线程执行
  3. DiscardOldestPolicy丢弃最老的任务
  4. DiscardPolicy直接丢弃

实现自己的饱和策略,实现RejectedExcutionHandler就行,保存到数据库之类的。

提交任务

最佳线程数

预定义线程池(全部实现ExecutorService接口)

  1. schedule执行一次,可以延时执行
  2. scheduleAtFixedRate提交固定时间执行任务
  3. scheduleWhithFixedDelay提交固定延时间隔执行的任务

自定义线程池

CompletionService

// 包装线程池
CompletionService<Integer> cService = new ExcutorCompletionService<>(pool);
// 提交若干任务
cService.submit(new WorkTask(..));
cService.submit(new WorkTask(..));
// 按照执行速度获取执行结果
cService.take().get();
cService.take().get();
上一篇 下一篇

猜你喜欢

热点阅读