1. 线程池实现方法
简介:从Java 5开始,JAVA新增加了Executors工厂类来创建线程池,通过工厂类的静态工厂方法来创建对应需求的线程池。
(1) newCachedThreadPool(): 创建一个具有缓存功能的线程池。
(2) newFixedThreadPool(): 创建一个可重用、固定线程数的线程池。
package com.threadtest.poo;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class FixedThreadPoolTest {
public static void main(String[] args) {
Runnable target = () -> {
for(int i = 0; i < 100; i++) {
try {
Thread.sleep(100);
}catch (InterruptedException e){
}
System.out.println(String.format("%s 打印数据: %s", Thread.currentThread().getName(), i));
}
};
ExecutorService executorService = Executors.newFixedThreadPool(2);
executorService.submit(target);
executorService.submit(target);
executorService.shutdown();
}
}
(3) newSingleThreadExecutor(): 创建一个只有单线程的线程池。
(4) newScheduledThreadPool(): 创建具有指定线程数的线程池,它可以指定延迟后执行线程任务。
(5) newSingleThreadScheduledExecutor(): 创建只有一个线程的线程池,它可以指定延迟后执行线程任务。
(6) newWorkStealingPool(int parallelism): 创建持有足够的线程的线程池来支持给定的并行级别,该方法还会使用多个队列来减少竞争。当参数为空时,将根据CPU数进行默认设置。
网友评论