线程池:JDK1.5之后提供
一次加载多个线程,使用时调用线程池,结束后将线程归还给线程池,不用创建和销毁线程节省大量时间
// java.util.concurrent.Executors 生产线程池工厂类
// static ExecutorService newFixedThreadPool(int nThreads)
创建一个线程池,该池重用在共享的无界队列中运行的固定数量的线程。
// java.util.concurrent.ExecutorService:线程池接口
//用来获取线程池中的线程,调用start方法,执行任务
submit(Runnable task)
提交Runnable任务以执行并返回表示该任务的Future。
//销毁/关闭线程的方法(慎用!!)
void shutdown()
启动有序关闭,其中先前提交的任务将被执行,但不会接受任何新任务。
使用步骤:
1、使用线程工厂类Executors 中的newFixedThreadPool生产指定的线程数量
2、创建一个类实现Runnable接口,重写run方法,设置线程任务
3、调用ExecutorService中的submit 方法执行线程任务
//定义的线程实现Runnable重写Run方法
public class PoolServe implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"线程启动");
}
}
//使用线程工厂类创建两个线程
ExecutorService e = Executors.newFixedThreadPool(2);
e.submit(new PoolServe());
e.submit(new PoolServe());
e.submit(new PoolServe());
//e.shutdown();//慎用会关闭线程池