黑马程序员技术交流社区

标题: 线程池的通俗理解!面试时候高频率问题 [打印本页]

作者: jiangweibin2573    时间: 2014-8-10 00:34
标题: 线程池的通俗理解!面试时候高频率问题
本帖最后由 jiangweibin2573 于 2014-8-10 13:33 编辑

如果你感觉有点用,请顶起来!!!希望黑马币多的,技术分多的送点!!急需啊,在此谢谢了

线程池可以看做容纳线程的容器
1.为什么要使用线程池
     在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个jvm里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足。为了防止资源不足,需要采取一些办法来限制任何给定时刻处理的请求数目,尽可能减少创建和销毁线程的次数,特别是一些资源耗费比较大的线程的创建和销毁,尽量利用已有对象来进行服务。
     线程池主要用来解决线程生命周期开销问题和资源不足问题。通过对多个任务重复使用线程,线程创建的开销就被分摊到了多个任务上了,而且由于在请求到达时线程已经存在,所以消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使用应用程序响应更快。另外,通过适当的调整线程中的线程数目可以防止出现资源不足的情况。
2.线程池的组成部分
    一个比较简单的线程池至少应包含线程池管理器、工作线程、任务列队、任务接口等部分。其中线程池管理器的作用是创建、销毁并管理线程池,将工作线程放入线程池中;工作线程是一个可以循环执行任务的线程,在没有任务是进行等待;任务列队的作用是提供一种缓冲机制,将没有处理的任务放在任务列队中;任务接口是每个任务必须实现的接口,主要用来规定任务的入口、任务执行完后的收尾工作、任务的执行状态等,工作线程通过该接口调度任务的执行。
      线程池管理器至少有下列功能:创建线程池,销毁线程池,添加新任务。
      工作线程是一个可以循环执行任务的线程,在没有任务时将等待。
      任务接口是为所有任务提供统一的接口,以便工作线程处理。任务接口主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等。
下面举个例子来详细说说
现在我们想线程池中添加100个任务,看线程池中线程数量是如何变化的,加深我们的理解。默认线程池中线程下限是5,上限25.


总结:线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程所需的时间,从而提高效率。
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.




作者: 一顿一只牛    时间: 2014-8-10 00:38
留个脚印 方便复习、
作者: 笑轻轻    时间: 2014-8-10 00:42
学习了 谢谢楼主分享哦
作者: hejinzhong    时间: 2014-8-10 00:43
昨天现场面试,一个题就是说线程池的理解,我就知道是解决资源问题,但不知道怎么解决的.多谢分享
作者: felixzr    时间: 2014-8-10 00:45
总结的很给力啊,当时我面试的时候。。。谢啦学习下
作者: jiangweibin2573    时间: 2014-8-10 00:49
felixzr 发表于 2014-8-10 00:45
总结的很给力啊,当时我面试的时候。。。谢啦学习下

黑马币,好多!送我几个可好,赶着入学
以前对这个也一直没搞清
作者: M单色调    时间: 2014-8-10 01:21
很好的总结,收了啊!
作者: lijiang    时间: 2014-8-10 08:25
赞一个。。。
作者: 青偆丶易逝〃    时间: 2014-8-10 09:06
看看分享。。
作者: 不想飞不到    时间: 2014-8-10 09:07
楼主,我先收藏了~正在看线程。
作者: justin1258    时间: 2014-8-10 09:23
学习学习
作者: 冒牌高手    时间: 2014-8-10 09:39
必须得看一下啊,增加知识面
作者: bfl625    时间: 2014-8-10 09:44
会总结就很好了,顶!
作者: 张周飞    时间: 2014-8-10 09:48
楼主这么给力! 我要给你生孩子!!.
作者: yesecongcong    时间: 2014-8-10 09:57
正需要,看一看
作者: 想做开发    时间: 2014-8-10 09:59
还得回复  
作者: wyf20106    时间: 2014-8-10 10:07
收藏了,感觉对我很有用的,谢谢:)
作者: 想做开发    时间: 2014-8-10 10:07
话说是不是看明白图上那个就可以了额
作者: ☆枫の云    时间: 2014-8-10 10:32
不错,说的真好,还是理解记忆吧,这内容好多=.=
作者: hejinzhong    时间: 2014-8-10 13:02
想做开发 发表于 2014-8-10 10:07
话说是不是看明白图上那个就可以了额

应该明白为什么会解决资源就好把,前面都是铺垫理解
作者: 晓风    时间: 2014-8-10 13:13
很强大的分享啊。感谢。
作者: 想做开发    时间: 2014-8-10 14:02
hejinzhong 发表于 2014-8-10 13:02
应该明白为什么会解决资源就好把,前面都是铺垫理解

晓得了  多谢了哈
作者: fxwb2005    时间: 2014-8-10 14:05
很有用啊,先顶一个!~
作者: 思维    时间: 2014-8-10 15:38
不错的总结留做复习用!
作者: 执笔梦    时间: 2014-8-10 16:33
学习下..
作者: aaa99992    时间: 2014-8-10 16:36
虽然不用,但还是支持了!!...
作者: java—family    时间: 2014-8-10 16:46
楼主好多东西就收了,同意楼上理解记忆,
作者: lspooooo    时间: 2014-8-10 16:50
谢谢楼主,学习一下,说不到面试的时候会用到!!!
作者: hxwo211314    时间: 2014-8-10 17:59
看看 ,顺便收藏一下

作者: 新航向    时间: 2014-8-10 18:09
多谢分享,收藏收藏
作者: 周小宁    时间: 2014-8-10 18:33
先回复再看
作者: 付士长    时间: 2014-8-10 18:43
谢谢分享
作者: happymouse    时间: 2014-8-10 18:46
看看,总结的不错
作者: 刷新召唤    时间: 2014-8-10 19:40
多谢楼主分享了
作者: 王健辉    时间: 2014-8-10 20:03
挺好,就是觉着有点多,看重点了
作者: 陈云阳    时间: 2014-8-10 20:05
非常给力 学习了
作者: 毕业生    时间: 2014-8-10 20:20
确实很通俗易懂
作者: 席杰    时间: 2014-8-10 20:28
学习来了
作者: huoshao008    时间: 2014-8-10 20:29
路过帮顶,很给力
作者: jackhai9    时间: 2014-8-10 20:34
你都替我总结了,哈哈,学习了。。
作者: jackhai9    时间: 2014-8-10 20:35
替我总结啦,哈哈,学习下
作者: covic依韵    时间: 2014-8-10 20:37
顶一个塞
作者: 晋一峰    时间: 2014-8-10 20:42
为什么还有隐藏内容    回复可见呢。。。。
我这常年潜水员 也给揪出来了
作者: 怀念黑海岸    时间: 2014-8-10 21:15
我回复了。。求看
作者: 好男人进化论    时间: 2014-8-10 21:17
收藏一下,以后学习
作者: hhnog    时间: 2014-8-10 22:26
学习一下   涨姿势
作者: liang926    时间: 2014-8-11 01:03
学习学习!
作者: 卞新浩    时间: 2014-8-11 01:08
面试会问到吗   我这总结一下
作者: blz01003hm    时间: 2014-8-11 01:19
看看 看看
作者: 武维京    时间: 2014-8-11 08:14
不错   顶一个!!
作者: 马嘉    时间: 2014-8-11 08:27
以前不是很理解,现在好像更明白了
作者: 阿磊    时间: 2014-8-11 08:33
学习学习
作者: 叶飞翔    时间: 2014-8-11 10:07
楼主分析的很透彻,谢谢分享
作者: zhxu188    时间: 2014-8-11 10:10
楼主给力呀
作者: liqi    时间: 2014-8-11 10:17
赞一个,学习了
作者: 叶飞翔    时间: 2014-8-11 10:19
越看越有感觉,楼主,这是你自己写的么?
作者: GoodBoy123    时间: 2014-8-11 10:20
看看看看看看
作者: wisely    时间: 2014-8-11 14:29
看看                        
作者: 月影箫风起k    时间: 2014-8-11 15:36
正好想找这些内容了
作者: 阿苏勒    时间: 2014-8-11 15:41
参考参考从南京从未就逗我
作者: 黄宝宝    时间: 2014-8-11 15:43
看看。谢谢
作者: 陶圣虎    时间: 2014-8-11 15:44
看看还隐藏了什么
作者: 韩天雷    时间: 2014-8-11 15:45
看一下隐藏内容
作者: 愤怒的小蔡!    时间: 2014-8-11 16:55
这个真有用
作者: 王洪涛    时间: 2014-8-11 17:01
很好,学习一下
作者: 七年锦·旅行    时间: 2014-8-11 17:46
收藏一下,方便复习,谢谢楼主分享!
作者: shuimu_88    时间: 2014-8-11 18:40
想学习下  
作者: xbz1986    时间: 2014-8-11 18:45
感觉好全面呐!
作者: 吴杰栋    时间: 2014-8-11 21:19
楼主写的不错哈,学习了
作者: @for    时间: 2014-8-11 21:25
很不错,受用了,谢谢楼主
作者: @for    时间: 2014-8-11 21:26
很不错,受用了,谢谢楼主
作者: lpc4276139    时间: 2014-8-11 21:30
谢谢,受教了。留下。
作者: 華燈初上    时间: 2014-8-12 15:15
kankan......
作者: 梦里听传说    时间: 2014-8-12 15:36
谢谢分享
作者: AEhaojiu    时间: 2014-8-12 15:44
楼主好人!!!!!!!!!
作者: AEhaojiu    时间: 2014-8-12 15:47
楼主好人
作者: alexchy    时间: 2014-8-12 15:48
写的不错嘛
作者: ︶ㄣ冰衅ヅ    时间: 2014-8-12 16:08
敢发隐藏贴,TJJTDS啦...
:o本贴由隐藏贴回复机快速回复
作者: 王乐乐    时间: 2014-8-12 16:20
收藏了!
作者: Hey丶小黑    时间: 2014-8-12 16:23
看看咯。

作者: dreamseekerkun    时间: 2014-8-12 17:22
多谢楼主分享,我是来学习的。
作者: Adjin    时间: 2014-8-12 17:38
看看,对线程池不太了解
作者: TanZhiPeng1991    时间: 2014-8-12 17:49
好东西,值得收藏
作者: supertoy    时间: 2014-8-12 18:09
收藏收藏O(∩_∩)O
作者: liqiaohui    时间: 2014-8-12 18:19
谢谢分享 收藏
作者: 奋上    时间: 2014-8-12 20:01
谢谢分享
作者: Faith-    时间: 2014-8-12 23:34
学习一下   
作者: liang926    时间: 2014-8-12 23:37
谢谢楼主了,好好学习!
作者: EarlyHeart    时间: 2014-8-13 05:05
学习了,谢谢楼主
作者: 戒风    时间: 2014-8-13 06:42
谢谢分享
作者: sunshine9091    时间: 2014-8-13 06:57
加油!呵呵
作者: 王凯路路    时间: 2014-8-13 08:18
路过看看..
作者: yqj    时间: 2014-8-13 08:44
楼主总结得给力
作者: Ezreal    时间: 2014-8-13 09:38
我也来学习学习
作者: vaqh    时间: 2014-8-13 09:46
看一看,希望面试能用上
作者: 臭豆腐_w    时间: 2014-8-13 13:58
看视频累了,来看看,复习复习
作者: F@C    时间: 2014-8-13 14:10
进来学习
作者: 单曲循环    时间: 2014-8-13 15:34
学习了,看来要慢慢看了
作者: 苍狼    时间: 2014-8-13 15:41
学习学习
作者: 落幕繁华    时间: 2014-8-13 16:15
留下。很好的分享的东西。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2