线程池的7种创建方式,强烈推荐你用它...(2)

简介: 线程池的7种创建方式,强烈推荐你用它...(2)

1.FixedThreadPool


创建一个固定大小的线程池,可控制并发的线程数,超出的线程会在队列中等待。


使用示例如下:


public static void fixedThreadPool() {
    // 创建 2 个数据级的线程池
    ExecutorService threadPool = Executors.newFixedThreadPool(2);
    // 创建任务
    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            System.out.println("任务被执行,线程:" + Thread.currentThread().getName());
        }
    };
    // 线程池执行任务(一次添加 4 个任务)
    // 执行任务的方法有两种:submit 和 execute
    threadPool.submit(runnable);  // 执行方式 1:submit
    threadPool.execute(runnable); // 执行方式 2:execute
    threadPool.execute(runnable);
    threadPool.execute(runnable);
}


执行结果如下:


微信图片_20220120145432.jpg


如果觉得以上方法比较繁琐,还用更简单的使用方法,如下代码所示:


public static void fixedThreadPool() {
    // 创建线程池
    ExecutorService threadPool = Executors.newFixedThreadPool(2);
    // 执行任务
    threadPool.execute(() -> {
        System.out.println("任务被执行,线程:" + Thread.currentThread().getName());
    });
}


2.CachedThreadPool


创建一个可缓存的线程池,若线程数超过处理所需,缓存一段时间后会回收,若线程数不够,则新建线程。


使用示例如下:


public static void cachedThreadPool() {
    // 创建线程池
    ExecutorService threadPool = Executors.newCachedThreadPool();
    // 执行任务
    for (int i = 0; i < 10; i++) {
        threadPool.execute(() -> {
            System.out.println("任务被执行,线程:" + Thread.currentThread().getName());
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
            }
        });
    }
}
目录
打赏
0
0
0
0
1171
分享
相关文章
【JavaP6大纲】多线程篇:线程池七个核心参数
【JavaP6大纲】多线程篇:线程池七个核心参数
216 0
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(二)
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(二)
459 0
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(一)
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(一)
689 0
并发编程(十一)自定义线程池
并发编程(十一)自定义线程池
140 0
java并发原理实战(4) -- 线程的创建方式
java并发原理实战(4) -- 线程的创建方式
139 0
java并发原理实战(4) -- 线程的创建方式
Python控制线程或函数超时处理+实例代码展示
Python控制线程或函数超时处理+实例代码展示
491 0
Python控制线程或函数超时处理+实例代码展示
线程池的7种创建方式,强烈推荐你用它...(7)
线程池的7种创建方式,强烈推荐你用它...(7)
101 0
线程池的7种创建方式,强烈推荐你用它...(7)
线程的3种实现方式并深入源码简单分析实现原理(3)
线程的3种实现方式并深入源码简单分析实现原理(3)
154 0
线程的3种实现方式并深入源码简单分析实现原理(3)
线程的3种实现方式并深入源码简单分析实现原理(1)
线程的3种实现方式并深入源码简单分析实现原理(1)
175 0
线程的3种实现方式并深入源码简单分析实现原理(1)
线程的3种实现方式并深入源码简单分析实现原理(2)
线程的3种实现方式并深入源码简单分析实现原理(2)
128 0
线程的3种实现方式并深入源码简单分析实现原理(2)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等