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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丶小天 中级黑马   /  2014-2-20 11:57  /  1272 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一直有一个疑惑请大家帮我解答一下
问题描述:
我们都知道当一个线程使用完之后(线程处于死亡状态时)是不可以再次启动的,那么线程池里面当池中的某一个线程执行完一次任务之后是否会被销毁?若是销毁,是否是jvm在适当的时候(cup空闲)会new一个新的线程补充线程池?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

2 个回复

倒序浏览
线程池作用就是限制系统中执行线程的数量。线程池中有规定最大的保存数,而且每个线程都可以被重复利用,被放入线程池中的线程是被保存起来进入等待序列的。是否补充新的线程如果要缓存线程池和无限大线程池就可以了。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵永生 于 2014-2-23 12:09 编辑

你的问题加黑处已解答。不会销毁,重复利用。呵呵
线程池的作用:
线程池作用就是限制系统中执行线程的数量。
     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。
为什么要用线程池:
1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马