ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java线程池详解 [打印本页]

作者: 张裕    时间: 2024-8-20 16:32
标题: Java线程池详解
Java线程池详解

线程池解释

线程池采用了池化思想,能够有效的管理线程的生命周期,减少了每次获取资源的斲丧,提高了资源的利用率。雷同池化实现还有数据库连接池、HTTP连接池等
利益

常见使用场景

线程池的引入:Executor框架

Executor框架为Java 5 引入,将传统线程的操控方法进行优化升级,使其针对不同 场景更加的机动、管理更加的方便,其核心jar包为java.util.concurrent,简称JUC。别的,很重要的一点,该框架还避免了 this逃逸题目。
this逃逸:指在构造函数返回之前,其他线程持有了该对象的引用,此时引用该对象调用其方法时,可能会出现欠好排查的异常。
Executor框架主要包罗三个部分

以ThreadPoolExecutor为例,ThreadPoolExecutor继承了AbstractExecutorService(抽象函数)的submit方法,而且实现了AbstractExecutorService来自Executor接口的execute方法,因此在调用线程池的submit方法时就会通过ThreadPoolExecutor的execute将任务(Runnabale/Callable为核心的RunnableFuture对象)加到工作队列中(addWorker方法实现),返回值则通过RunnableFuture对象的情势返回。
简单来说就是主线程将Runnabale/Callable对象通过submit方法提交给线程池,线程池通过内部调度按照不同的策略执行多线程任务,然后通过返回的Futrure对象的get方法取出执行结果。
ThreadPoolExecutor 类

线程池实现类 ThreadPoolExecutor 是 Executor 框架最核心的类
主线程提交任务后
参数介绍:

拒绝策略:

线程池干系的内容有很多,该文章重在介绍,若要穷究其中的某个元素,可以通过参考源码的方式,这样可以最直观的看到内部构成以及各个元素之间怎样合作解决线程池的实现题目。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4