JAVA ThreadPool

不问归期 提交于 2020-11-03 04:33:31

概述

为了避免系统频繁的创建和销毁线程所带来的性能消耗,可以让线程得到很好的复用。当需要线程时从线程池中取,当使用完归还线程。

创建线程池方式

创建固定数量的线程池 创建一个数量的线程池 创建根据实际情况调整线程数量的线程池 创建一个执行定时任务的线程池 创建执行定时任务的线程池

任务队列

当任务被提交尚未执行的任务队列是一个BlockingQueue接口对象,只存放Runnable对象,根据队列的功能分为 SynchronousQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue

拒绝策略

如果线程池处理速度达不到任务出现速度时,只能执行拒绝策略。 AbortPolicy CallerRunsPolicy DiscardOledestPolicy DiscardPolicy

线程数量优化规则

公式进行粗略计算:线程池个数=CPU的数量CPU的使用率(1+等待时间/计算时间)

Fork/Join

最后看下分而治之:Fork/Join

参考资料:

Fork/Join使用

分布式框架中使用CompletableFuture

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!