概述
为了避免系统频繁的创建和销毁线程所带来的性能消耗,可以让线程得到很好的复用。当需要线程时从线程池中取,当使用完归还线程。
创建线程池方式
创建固定数量的线程池 创建一个数量的线程池 创建根据实际情况调整线程数量的线程池 创建一个执行定时任务的线程池 创建执行定时任务的线程池
任务队列
当任务被提交尚未执行的任务队列是一个BlockingQueue接口对象,只存放Runnable对象,根据队列的功能分为 SynchronousQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue
拒绝策略
如果线程池处理速度达不到任务出现速度时,只能执行拒绝策略。 AbortPolicy CallerRunsPolicy DiscardOledestPolicy DiscardPolicy
线程数量优化规则
公式进行粗略计算:线程池个数=CPU的数量CPU的使用率(1+等待时间/计算时间)
Fork/Join
最后看下分而治之:Fork/Join