一、概念:
我们平时都是在需要线程的时候去创建一个线程,我们这样使用非常方便,但是如果并发的线程数量很多的话,每个线程可能就执行很短的时间就结束了,那么,这样频繁的创建线程就会大大的降低系统和程序的效率,因为频繁创建和销毁线程需要很多时间。
所以我们需要使用【线程池】
其实就是一个容纳很多线程的容器,其中的线程可以反复使用,省去了频繁创建线程的操作,无需反复创建线程而消耗过多的资源。
线程池思想:当我们需要使用线程的时候,就去线程池里获取一个线程来使用,使用完成之后不会销毁,而是可以继续去执行其他的任务。
二、线程池的使用
真正的线程池接口是 java.util.concurent.ExecutorService 是一个接口
java.util.concurent.ExecutorService
线程工厂类里面提供了一些静态方法,生成一些常用的线程池
Executors 类中创建线程池的方法:
- public static ExecutorService newFixedThreadPool ( int Threads ):创建指定数量的线程的线程池
那么,如何提交到线程池,并执行任务:ExecutorService线程池的方法:
- public Future<?> submit(Runnable task):获取线程池中的某一线程对象,并执行任务,