线程池将线程和任务进⾏解耦,线程是线程,任务是任务,摆脱了之前通过
Thread
创建线程时的⼀个线程必须对应⼀个任务的限制。
在线程池中,同⼀个线程可以从阻塞队列中不断获取新任务来执⾏,其核⼼原理在于线程池对 Thread进⾏了封装,并不是每次执⾏任务都会调⽤
Thread.start()
来创建新线程,⽽是让每个线程去执⾏⼀个“循环任务”,
在这个“循环任务”中不停检查是否有任务需要被执⾏,如果有则直接执⾏,也就是调⽤任务中的 run ⽅法,将 run ⽅法当成⼀个普通的⽅法执⾏,通过这种⽅式只使⽤固定的线程就将所有任
务的 run ⽅法串联起来。