newFixedThreadPool

  • 需要注意的是线程数虽然是随着你传入的nThreads参数个数是固定了,但是线程是懒加载,在构建之初线程并没有创建,而是随着开发者调用提交的任务使用之后线程才在线程池中创建出来。***
  • 如果要是线程没有被创建,那么会等待任务的执行而线程被创建和执行。
  • 要是线程已经被创建好了之后,那任务会放到参数中显示的LinkedBlockingQueue无界队列中存放着。等待线程自己去队列中take获取任务执行。

JDK自带的构建线程池的方式之newFixedThreadPool-LMLPHP

  • 可以看到我在创建的时候只创建2个线程,因此在执行的时候也就只有两个线程在执行我所分配的任务。

JDK自带的构建线程池的方式之newFixedThreadPool-LMLPHP

  • 添加了系统的时间戳查看不难发现,要是没有线程可以使用就会进队列等待,然后等到线程可以使用再获取执行任务。

JDK自带的构建线程池的方式之newFixedThreadPool-LMLPHP

06-21 08:59