1、线程池原理
创建一个线程,需要一个Thread对象和一个Runable接口实例。每次都去new一个Thread对象是很耗费时间的,而且不好管
理。线程池就是为了复用已存在的Thread对象,防止不停地创建Thread对象带来的性能损耗。
2、线程池流程流程总的说明
线程池中会有一个HashSet,里面存放着Worker对象。这个Worker中会存有一个Thread对象,会使用这个thread执行任务。
这个Worker对象的多少代表着线程池的线程容量,每个Worker会从BlockingQueue中获取你的Runnable实例任务,进行执行,
没有的话,会阻塞在那里,直到获取到队列中的任务。
新建线程任务流程1、如果HashSet中的线程数量没有达到核心线程数量,那么就会新创建一个Worker对象,直接执行你的任务。
2、如果HashSet中的线程数量已经达到核心的线程大小并且任务队列没有满,不再创建这个Worker对象,会将你的任务放
到队列中。
3、如果HashSet中的线程数量已经达到核心的线程大小并且任务队列满了,那么就会创建Worker对象,直到达到最大线程
数量为止。
4、如果HashSet中的线程数量已经达到最大线程大小,新来的任务就会被拒掉。
想了解更多相关资讯请关注java培训频道-查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注赋能网了解更多:4008-569-579
本文链接:
本文章“Java学习小知识之线程池”已帮助 61 人
免责声明:本信息由用户发布,本站不承担本信息引起的任何交易及知识产权侵权的法律责任!
本文由赋能网 整理发布。了解更多培训机构》培训课程》学习资讯》课程优惠》课程开班》学校地址等机构信息,可以留下您的联系方式,让课程老师跟你详细解答:
咨询热线:4008-569-579


