设为首页 加入收藏

TOP

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

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



 


 


 


 


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


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


  看一下构造方法的参数


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


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


  


  再看一下JDK中的workQueue队列:


 


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


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


 


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


 


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


 


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


  


  


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


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


  





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

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }