线程池的代码实现
线程池的代码实现
Executors:线程池的工厂类,用来生产线程
Executors中的静态方法:
static ExecutorService |
newFixedThreadPool(int nThreads) 创建一个可重用固定线程集合的线程池,以共享的无界队列方式来运行这些线程 |
参数:int nThreads:创建池中包含的线程数量
返回值:ExecutorService接口,返回的是ExecutorService接口实现类对象,可以使用ExecutorService接口接受
submit:提交一个Runnable 任务用于执行
关闭/销毁线程池的方法:void shudown()
线程池的使用步骤:
1,使用线程池的工厂类Executors里面提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池
2,创建一个类,实现Runnable接口,重点Run方法,设置线程任务
3,调用ExecutorService中的方法submit,传递线程任务(实现类)开启线程,执行run方法
4,调用ExecutorService中的方法shutdown销毁线程池(不建议执行)
案例:
package Runnable;
import java.util.concurrent.Executors;
public class ExecutorService {
/**
* 线程池的使用步骤:
*
* 1,使用线程池的工厂类Executors里面提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池
* 2,创建一个类,实现Runnable接口,重点Run方法,设置线程任务
*
* 3,调用ExecutorService中的方法submit,传递线程任务(实现类)开启线程,执行run方法
*
* 4,调用ExecutorService中的方法shutdown销毁线程池(不建议执行)
* @param args
*/
public static void main(String[] args) {
// 1,使用线程池的工厂类Executors里面提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池
java.util.concurrent.ExecutorService pool = Executors.newFixedThreadPool(2);
// 3,调用ExecutorService中的方法submit,传递线程任务(实现类)开启线程,执行run方法
pool.submit(new Runnableimpl());
pool.submit(new Runnableimpl());
pool.submit(new Runnableimpl());
}
}