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

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

4.ScheduledThreadPool


创建一个可以执行延迟任务的线程池。


使用示例如下:


public static void scheduledThreadPool() {
    // 创建线程池
    ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(5);
    // 添加定时执行任务(1s 后执行)
    System.out.println("添加任务,时间:" + new Date());
    threadPool.schedule(() -> {
        System.out.println("任务被执行,时间:" + new Date());
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
        }
    }, 1, TimeUnit.SECONDS);
}


执行结果如下:


微信图片_20220120145706.jpg


从上述结果可以看出,任务在 1 秒之后被执行了,符合我们的预期。


5.SingleThreadScheduledExecutor


创建一个单线程的可以执行延迟任务的线程池。


使用示例如下:


public static void SingleThreadScheduledExecutor() {
    // 创建线程池
    ScheduledExecutorService threadPool = Executors.newSingleThreadScheduledExecutor();
    // 添加定时执行任务(2s 后执行)
    System.out.println("添加任务,时间:" + new Date());
    threadPool.schedule(() -> {
        System.out.println("任务被执行,时间:" + new Date());
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
        }
    }, 2, TimeUnit.SECONDS);
}


执行结果如下:


微信图片_20220120145737.jpg


从上述结果可以看出,任务在 2 秒之后被执行了,符合我们的预期。

目录
打赏
0
0
0
0
1171
分享
相关文章
【JavaP6大纲】多线程篇:线程池七个核心参数
【JavaP6大纲】多线程篇:线程池七个核心参数
216 0
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(一)
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(一)
689 0
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(二)
【CUDA学习笔记】第四篇:线程以及线程同步(附案例代码下载方式)(二)
459 0
并发编程(十一)自定义线程池
并发编程(十一)自定义线程池
140 0
java并发原理实战(4) -- 线程的创建方式
java并发原理实战(4) -- 线程的创建方式
139 0
java并发原理实战(4) -- 线程的创建方式
Python控制线程或函数超时处理+实例代码展示
Python控制线程或函数超时处理+实例代码展示
491 0
Python控制线程或函数超时处理+实例代码展示
线程池的7种创建方式,强烈推荐你用它...(7)
线程池的7种创建方式,强烈推荐你用它...(7)
100 0
线程池的7种创建方式,强烈推荐你用它...(7)
线程的3种实现方式并深入源码简单分析实现原理(3)
线程的3种实现方式并深入源码简单分析实现原理(3)
154 0
线程的3种实现方式并深入源码简单分析实现原理(3)
线程的3种实现方式并深入源码简单分析实现原理(2)
线程的3种实现方式并深入源码简单分析实现原理(2)
128 0
线程的3种实现方式并深入源码简单分析实现原理(2)
线程的3种实现方式并深入源码简单分析实现原理(1)
线程的3种实现方式并深入源码简单分析实现原理(1)
175 0
线程的3种实现方式并深入源码简单分析实现原理(1)