我们在 Java的多线程操作 一 的基础上了解到多线程的一些核心地方。但是我们为了方便肯定是使用线程池Executers。
一:固定线程池 一个请求一个线程
首先:创建一个线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
根据自己的实际需要创建线程池我们这边默认是10个线程。
使用线程池
for (int i = 0; i < 1000; i++) {
final int n = i;
executorService.execute(() -> {
System.out.println("当前线程"+Thread.currentThread().getName());
//执行程序。
}
);
}
这样就可以了。
二:固定线程池 多个请求一个线程
也是一样,先创建固定线程池
// 开启固定线程池
ExecutorService exec = Executors.newFixedThreadPool(10);
然后写一个方法,返回的是Runnable
public Runnable MyThread(List<Object> list){
Runnable runnable=new Runnable() {
@Override
public void run() {
for(int i=0;i<list.size();i++){
//执行程序
}
}
};
return runnable;
}
接着我们就可以使用线程池
Runnable task = this.myThread(list);
exec.submit(task);
这样一批list就一个线程来执行。