java培训
搜索分类

Java学习小知识之线程池

赋能网 2023-05-10 61

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

发表评论
0评