1.线程池的作用:减少创建线程对象和销毁线程对象的时间,从而提高线程对象使用效率.
2.线程池:存放多个线程对象容器.
4.线程池常用接口和类
4.1:ExecutorService:线程池接口
常用方法:
shutdown()关闭线程池
submit(Runnable task) 从线程池中拿出一个线程对象来执行任务
4.2:Executors:线程池工具类对象
常用方法:
4.2.1:newCachedThreadPool();创建一个可缓存的线程池,可随机创建线程对象,线程对象在1min内可以循环使用,如果1min内无任务执行,就会自动回收这个线程对象.
4.2.2:newSingleThreadExecutor();创建只有一个线程对象的线程池.
4.2.3:newFixedThreadPool(int nThreads);创建指定线程数量的固定大小线程池
4.3:线程池的使用:
eg:public static void main(String[] args) {
//创建单个线程的线程池对象
//ExecutorService pool1= Executors.newSingleThreadExecutor();
//创建固定大小线程的线程池对象
//ExecutorService pool1=Executors.newFixedThreadPool(2);
//创建可缓存的线程池
ExecutorService pool1=Executors.newCachedThreadPool();
//创建一个任务对象
MyRunnable r1=new MyRunnable();
MyRunnable r2=new MyRunnable();
MyRunnable r3=new MyRunnable();
//从线程池中取出一个线程对象来执行任务
pool1.submit(r1);
pool1.submit(r2);
pool1.submit(r3);
//关闭线程池
pool1.shutdown();
}