程序启动一个新线程成本是比较高的,创建线程效率不是很高。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,应该考虑使用线程池。

线程池的好处:线程池里的每一个线程代码结束后,线程不会死亡,而是返回到线程池中成为空闲状态,等待下一个对象来使用。

线程池的使用:

1.创建一个线程池的对象,控制要创建几个线程对象:

使用Executors类的静态方法newFixedThreadPool(int nThreads)创建线程池对象 ExecutorService。

2.这种线程池的线程可以执行:

可以执行Runnable对象的线程。

3.线程的调用方法submit(Runnable task) :

该方法可以调用线程池中的线程,然后该线程不会死亡,完成任务后进入线程池,等待下一个对象来使用。

4.线程池的结束方法shutdown():

调用完该方法线程池会继续完成之前提交的任务,不会再接收新的任务。