线程池复用的原理:
线程池可以让线程和任务解耦, 一个线程可以从阻塞队列中不断的获取新的任务来执行.
调用线程执行, 可以通过两种方式,
一种是调用start()方法, 这种在多线程使用时, 创建线程, 每个线程调用的自己的方法, 是并行发生的.
一种是调用run()方法, 这种是同步运行的.
线程池不是每次执行任务时调用Thread.start()方法, start()方法调是在多线程时调用的方法,
而线程池调用的是run()方法, 循环的来执行不同的任务.
再简单一点说:
线程池是创建了若干线程, 这些线程通过循环的方法来调用队列中任务的run()方法, 来执行任务. 如果没有线程池, 那么每个任务调用都需要创建一个线程, 才能执行任务. 这时如果需要多线程, 那就需要调用start()方法.