
线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。
注意:线程池中的线程运行结束不会被销毁,耳式返回线程池等待下次被调用
线程池jdk5.0版本推出
ExecutorService:线程池类
线程池类赋值线程生命周期,我们只需要像线程池中提交执行目标,线程池会自动分配线程,执行相对应的操作(业务逻辑)。
- 定义线程执行的目标:
这里我们是用卖票的案例模拟
- 向线程池提交任务:
F<?> submit((Runnable task)):接收一个Runnable接口实现类, 执行线程的目标
实例化线程
ExecutorService是一个接口,专门处理线程池的
Ececutors是一个工具类,提供了很多的方法服务于线程池
newFixedThreadPool(3);该方法你能传入的参数表示在线程启动的时候初始化几个线程
package Test22_Demo.Demo01;/*@create 2020--12--15--9:32*/import java.util.concurrent.Executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ThreadPoolDemo {public static void main(String[] args) {//实例化线程ExecutorService threadDemo = Executors.newFixedThreadPool(3);Ticket ticket = new Ticket();threadDemo.submit(ticket);threadDemo.submit(ticket);threadDemo.submit(ticket);threadDemo.submit(ticket);threadDemo.submit(ticket);//在适当的时候可以关闭线程池,一般不关闭 - 因为反而会影响性能//意味着线程池中的所有的线程都能销毁//threadPool。shutdown();}}
