A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 jiangweibin2573 于 2014-8-10 13:33 编辑

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

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


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



点评

你都没有实名认证,有黑马币也换不了技术分啊  发表于 2014-8-13 16:31
收藏了,感觉对我很有用的,谢谢  发表于 2014-8-10 10:05

评分

参与人数 3技术分 +1 黑马币 +10 收起 理由
格子、 + 1 楼下调皮了
张周飞 + 5 楼主这么给力! 我要给你生孩子!!.
hejinzhong + 5 很给力!

查看全部评分

162 个回复

正序浏览
不错哦不错哦不错哦
回复 使用道具 举报
讲的不错,就是回复真难
回复 使用道具 举报
黑马的回复真心难到爆!谢谢帖子
回复 使用道具 举报
为了看这个帖子  历尽艰辛
回复 使用道具 举报
线程池学蒙了
回复 使用道具 举报
支持分享知识,希望大家能共同进步
回复 使用道具 举报
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 使用道具 举报
通俗易懂
回复 使用道具 举报
不错,学习了~
回复 使用道具 举报
手动点赞~~~
回复 使用道具 举报
dddddddddddddddddd
回复 使用道具 举报
干货!!!赞一个
回复 使用道具 举报
111111111111111111
回复 使用道具 举报
谢谢收藏了
回复 使用道具 举报
aaaaaaaaaaa
回复 使用道具 举报
sdfsdfadfasdfasdf
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
太棒了,学习下
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
:lol看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马