问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 什么是线程池

发布网友 发布时间:2022-04-22 21:51

我来回答

3个回答

热心网友 时间:2022-04-10 01:58

找的资料,你看一下吧:
多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。

假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。

如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。
一个线程池包括以下四个基本组成部分:
1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务;
2、工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务;
3、任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等;
4、任务队列(taskQueue):用于存放没有处理的任务。提供一种缓冲机制。

线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3分别安排在服务器程序的启动和结束的时间段或者一些空闲的时间段,这样在服务器程序处理客户请求时,不会有T1,T3的开销了。

线程池不仅调整T1,T3产生的时间段,而且它还显著减少了创建线程的数目,看一个例子:

假设一个服务器一天要处理50000个请求,并且每个请求需要一个单独的线程完成。在线程池中,线程数一般是固定的,所以产生线程总数不会超过线程池中线程的数目,而如果服务器不利用线程池来处理这些请求则线程总数为50000。一般线程池大小是远小于50000。所以利用线程池的服务器程序不会为了创建50000而在处理请求时浪费时间,从而提高效率。

热心网友 时间:2022-04-10 03:16

你好,我可以给你详细解释一下: 线程组表示一个线程的集合。此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组。 允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程

热心网友 时间:2022-04-10 04:51

在什么情况下使用线程池?

1.单个任务处理的时间比较短
2.将需处理的任务的数量大

使用线程池的好处:

1.减少在创建和销毁线程上所花的时间以及系统资源的开销
2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。

线程池工作原理:http://www.ibm.com/developerworks/cn/java/j-jtp0730/
该文章里有个例子,简单的描述了线程池的内部实现,建议根据里面的例子来了解JAVA 线程池的原理。同时,里面还详细描述了使用线程池存在的优点和弊端
JDK自带线程池总类介绍介绍:

1、newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。

2、newCachedThreadPool创建一个可缓存的线程池。这种类型的线程池特点是:
1).工作线程的创建数量几乎没有*(其实也有*的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。
2).如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。

3、newSingleThreadExecutor创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,如果这个线程异常结束,会有另一个取代它,保证顺序执行(我觉得这点是它的特色)。单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的 。

4、newScheleThreadPool创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer。(这种线程池原理暂还没完全了解透彻)

总结: 一.FixedThreadPool是一个典型且优秀的线程池,它具有线程池提高程序效率和节省创建线程时所耗的开销的优点。但是,在线程池空闲时,即线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我女朋友我在同事面前说她是我媳妇她默认,在她组长面前就不承认了什么... 跨省迁户口需要的手续 户口跨省迁移需要哪些手续? cf空白名字怎么打(cf空白名字怎么打2021) 关于旅行的电影 就是一个人旅行放松心灵那种 不要纪录片 模拟人生2高斯的遗产给儿子还是女儿 模拟人生2如何跟高斯结婚啊? 模拟人生2高斯怎么找到贝拉,找到后能怎么办? 我的米2插上充电器后屏幕一直闪,快速的一下显示充电一下没在充电。请 ... ...屏幕乱闪 充不进去电 用手机连接电脑也是一样 服务器端采用线程池来保证并发响应多个客户端的请求,线程池有哪些优点? 线程池如何保证核心线程不被销毁? 为什么使用线程池? 什么是线程池,如何使用,为什么要用 为什么要使用线程池 我怎样做才能说一口流利的英语? 英语是我的最爱,能说一口流利的英语一直是我的梦想,怎么翻译 我对说一口流利的英语非常向往用英语怎么说? 怎样能把英语说的很流利? 我希望自己可以很流利的用英文和比人对话英文怎么说 愿我能说一口流利的英语时,我们依然未改变 翻译 英语翻译:我的英语成绩很棒,会说一口流利的英语,我相信和他们交流起来并不困难。去年我们也曾接待过从 我希望我能说英语很流利的翻译是:什么意思 我希望能说流利的英语.用翻译成英语怎么说? 我是中国人,我会流利地说英语的英语单词怎么读? 都说国际注册会计师ICPA资质证书好,那么这个证书是哪里颁发的呢? 请问初级会计职称的发证部门是哪里? 注册会计师证书怎么发放的 注册会计师证书是属于哪个部门颁发? 注册会计师证书是由哪个部门颁发的? 为什么了要使用线程池,什么情况下要使用线程池 谁免费给我qq音乐破解版 可以免费听付费歌曲的 十分感谢 用thread pool有什么好处,有什么坏处 怎么破解qq音乐qmcflac这种格式的会员歌曲? QQ音乐破解版 java 什么是线程池及为什么要使用线程池 求QQ音乐破解版 Java多线程为什么使用线程池 谁有破解版的QQ音乐,或者网易云音乐 求酷狗或者QQ音乐破解版 Java线程池中的核心线程是如何被重复利用的 java 线程池 工作队列是如何工作的 java 线程组和线程池的作用? java中使用异步线程池有什么优缺点 Java服务 多个业务用一个线程池和一个业务使用一个线程池的优缺点? 如何实现一个线程池,使用线程池的优点 c++ 请问为什么我的电脑经常自动下载垃圾游戏?疑似鲁大师游戏库自动下载的但我找不到这个应用程序,望高人指 鲁大师安装的东西怎么删除 苹果手机怎么设置加密微信密码? iphone 7怎么给微信加密?