TOP

Java线程池ThreadPoolExecutor实现原理
2019-02-10 22:08:41 】 浏览:123
Tags:Java 线程 ThreadPoolExecutor 实现 原理

线程属于稀缺资源,对于线程的创建规则,引用《阿里巴巴 Java 手册》中的一条进行说明。



 


 


 


 


  本篇从源码方面介绍ThreadPoolExecutor对象,并简要解析线程池工作原理。


  首先ThreadPoolExecutor中定义了几个线程池状态常量


  看一下构造方法的参数


  这里可以简单看下JDK中已有的4种饱和策略handler:


  也可以自定义饱和策略,只需实现RejectedExecutionHandler接口。


  


  再看一下JDK中的workQueue队列:


 


  JDK提供了Executors工厂类。这里面有几种实例化线程池的方法:


  指定了线程数,且corePoolSize == maximumPoolSize。


 


  可缓存线程池。最大线程数达到Integer.MAX_VALUE。所以在使用该线程池时,一定要控制并发数,不然会创建很多线程,占用大量资源。


 


  只有一个线程的线程池,可以保证提交任务的顺序执行。


 


  上面的实例方法都很方便,但是在开发中创建线程池时,最好不好使用Executors类中的初始化方法。见《阿里巴巴 Java 手册》:


  


  


  最后看一下ThreadPoolExecutor执行任务的方法


  以一张简单的流程图描述上面的步骤:


  



Java线程池ThreadPoolExecutor实现原理 https://www.cppentry.com/bencandy.php?fid=54&id=207809

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java异常实战 - OutOfMemoryError 下一篇Java并发编程 - Callable、Future..