javaSE复习之——多线程_线程池
线程池的概述
- 一个形象的比喻:
把很多线程全部养在一个池子里,要用就拿出来用,不用就放回去,还不会死掉的。这样就不用一直创建-死亡,因为线程的创建-死亡需要与计算机系统交互,这样的成本是很高的,用上线程池就可以很好的提高性能,尤其是程序中有很多生存周期短的线程。在jdk5之前必须手动创建线程池,jdk5之后java内置线程池
jdk5新增了一个Executors工厂类来生产线程池,有如下几个方法:
- .newFixedTreadPool(int)
创建一个线程池int传多少就是可以放多少线程
- .newSingleTreadExecutor()
创建一个可以放一条线程的线程池
线程池对象
ExecutorService
ExecutorService线程池对象中的方法:
- .submit(线程对象)
把线程放入线程池中,并且执行
- .shutdown()
关闭线程池
创建线程池示例
1 | ExecutorService es = Executors.newFixedTreadPool(12) |