Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ScheduledThreadPoolExecutor实现定时器和延时加载功能

ScheduledThreadPoolExecutor实现定时器和延时加载功能

作者头像
执笔记忆的空白
发布于 2020-12-25 03:35:36
发布于 2020-12-25 03:35:36
82200
代码可运行
举报
文章被收录于专栏:Java日常Java日常
运行总次数:0
代码可运行

java.util.concurrent.ScheduledThreadPoolExecutor 是 JDK1 .6之后自带的 包,功能强大,能实现定时器和延时加载的功能

各类功能和处理方面优于Timer

1、定时器:

ScheduledThreadPoolExecutor 有个scheduleAtFixedRate(command, initialDelay, period, unit) ;方法

command: 执行的线程(可自己New一个)

initialDelay:初始化执行的延时时间

period: 时间间隔

unit : 时间类型(如TimeUnit.SECONDS: 秒的方式执行 , TimeUnit.DAYS : 天数的方式执行)

具体代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	public static void main(String[] args) {
		stThread.scheduleAtFixedRate(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				System.out.println(new Date());
			}
		},
				20, 2, TimeUnit.SECONDS);
	}

2、延时处理

ScheduledThreadPoolExecutor 有个 schedule(callable, delay, unit) ; 方法

callable:回调方法

delay:延时时间

unit:时间类型 , 同定时器的unit一样

具体代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stThread.schedule((RolePrvlegeTask)SpringUtils.getBean("rolePrvlegeTask"), 1, TimeUnit.SECONDS);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/04/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ScheduledThreadPoolExecutor原理探究
简介 ThreadPoolExecutor是Executors中一部分功能,下面来介绍另外一部分功能也就是ScheduledThreadPoolExecutor的实现,后者是一个可以在一定延迟时候或者定时进行任务调度的线程池。 Executors其实是个工具类,里面提供了好多静态方法,根据用户选择返回不同的线程池实例。 ScheduledThreadPoolExecutor继承了ThreadPoolExecutor并实现ScheduledExecutorService接口,关于ThreadPoolExe
xiangzhihong
2018/02/08
1.5K0
ScheduledThreadPoolExecutor原理探究
【原创】Java并发编程系列35 | ScheduledThreadPoolExecutor定时器
上一篇讲解了线程池的原理,这篇就在线程池基础上介绍基于线程池实现的定时器ScheduledThreadPoolExecutor:
java进阶架构师
2020/09/14
8360
【原创】Java并发编程系列35 | ScheduledThreadPoolExecutor定时器
ExecutorService详解[通俗易懂]
在我们的日常开发中,难免会使用到线程,部分还会用到多线程并发问题。我们知道,线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如如定时执行、定期执行、线程中断,所以很有必要了解下ExecutorService的使用。
全栈程序员站长
2022/10/01
1.7K0
ScheduledExecutorService简化java多线程开发
java开发,多多少少会接触到多线程的应用开发场景,博主之前做多线程的时候就两种方式,一个是继承Thread一个是实现Runnable接口,不过用的多的还是实现Runnable接口,因为实现Runnable接口可以做多线程资源共享!而java.util.concurrent.ScheduledExecutorService接口将大大简化多线程应用的开发!也能轻松解决任务定时执行的问题!
kl博主
2023/11/18
2100
ScheduledExecutorService简化java多线程开发
详解scheduleAtFixedRate与scheduleWithFixedDelay原理
大家好,又见面了,我是你们的朋友全栈君。 前言 前几天,肥佬分享了一篇关于定时器的文章你真的会使用定时器吗?,从使用角度为我们详细地说明了定时器的用法,包括 fixedDelay、fixedRate,
全栈程序员站长
2022/11/18
6.2K0
详解scheduleAtFixedRate与scheduleWithFixedDelay原理
Java中调度线程池ScheduledThreadPoolExecutor原理探究
前面讲解过Java中线程池ThreadPoolExecutor原理探究,ThreadPoolExecutor是Executors中一部分功能,下面来介绍另外一部分功能也就是ScheduledThreadPoolExecutor的实现,后者是一个可以在一定延迟时候或者定时进行任务调度的线程池。
加多
2018/09/06
7440
Java中调度线程池ScheduledThreadPoolExecutor原理探究
高并发之——深度解析ScheduledThreadPoolExecutor类的源代码
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
4660
ScheduledExecutorService 实现定时任务「建议收藏」
第一次执行任务的延时时间(initialDelay),周期执行的时间间隔(period)。
全栈程序员站长
2022/09/05
1.3K0
【小家java】Java定时任务ScheduledThreadPoolExecutor详解以及与Timer、TimerTask的区别(执行指定次数停止任务)
定时任务就是在指定时间执行程序,或周期性执行计划任务。Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求。
YourBatman
2019/09/03
3.6K0
Scheduled线程池实践
在现代 Java 开发中,任务调度是一项不可或缺的功能。无论是定时数据同步、定期清理无效缓存,还是实现任务重试,ScheduledThreadPoolExecutor 都是一个强大的工具。本文将从其基本概念、核心方法、应用场景以及优化建议等方面,深入探讨这个 Java 并发工具。
FunTester
2025/01/23
850
Scheduled线程池实践
面试必问!JDK 中定时器是如何实现的?
Demo中使用了Timer实现了一个定时任务,该任务在每天12点开始执行,并且每隔2秒执行一次。
Java小咖秀
2021/04/20
4130
java高级进阶|定时器的分析
以前写文章的时候忘了标记原创,导致最近整理文章的时候会发现不是原创的文章不给自己权限合入对应目录了,这也是自己后面慢慢开始注重这方面的积累了,读过我的文章的读者应该都知道我喜欢在文章的标题前加一个前缀"java进阶|xxx"。
码农王同学
2020/05/29
5270
死磕 java线程系列之线程池深入解析——定时任务执行流程
前面我们一起学习了普通任务、未来任务的执行流程,今天我们再来学习一种新的任务——定时任务。
彤哥
2019/11/07
7860
ScheduledExecutorService 延迟 / 周期执行线程池
1、public interface ScheduledExecutorService extends ExecutorService 延迟或定期执行任务。
全栈程序员站长
2022/08/22
1.6K1
ScheduledExecutorService 延迟 / 周期执行线程池
调度服务 ScheduledExecutorService 经常卡顿问题的排查及解决方法
如上述代码所示,启动 10 个调度线程,延迟 10 秒,开始执行定时逻辑,然后每隔 2 秒执行一次定时任务。定时任务类为TaskWorker,其要做的事就是根据offset和rows参数,到数据库捞取指定范围的待处理记录,然后送到TaskService的processTask方法中进行处理。从逻辑上来看,该定时没有什么毛病,但是在执行定时任务的时候,却经常出现卡顿的问题,表现出来的现象就是:定时任务不执行了。
CG国斌
2020/04/20
2.1K0
Spring TaskScheduler实现定时任务分析
实际上还是ThreadPoolTaskScheduler的方法,只是封装了一层更适合项目使用
深雾
2020/07/10
1.2K0
线程池底层原理详解与源码分析(补充部分---ScheduledThreadPoolExecutor类分析)
  本篇幅是对 线程池底层原理详解与源码分析  的补充,默认你已经看完了上一篇对ThreadPoolExecutor类有了足够的了解。
忧愁的chafry
2022/10/30
2400
手把手教你写一个延时队列
这种实现方式下多个定时任务需要开启多个线程,而且线程在做无意义sleep,消耗资源,性能低下。
派大星在吗
2021/12/18
5040
(80) 定时任务的那些坑 / 计算机程序的思维逻辑
本节探讨定时任务,定时任务的应用场景是非常多的,比如: 闹钟程序或任务提醒,指定时间叫床或在指定日期提醒还信用卡 监控系统,每隔一段时间采集下系统数据,对异常事件报警 统计系统,一般凌晨一定时间统计昨日的各种数据指标 在Java中,有两种方式实现定时任务: 使用java.util包中的Timer和TimerTask 使用Java并发包中的ScheduledExecutorService 它们的基本用法都是比较简单的,但如果对它们没有足够的了解,则很容易陷入其中的一些陷阱,下面,我们就来介绍它们
swiftma
2018/01/31
1.2K0
多线程进阶——JUC并发编程之Executors框架设计思想一探究竟🔥
Executors 框架是整个JUC 包中类/接口关系中最为复杂的框架,真正理解Executors框架的前提是理清楚各个模块之间的关系,高屋建瓴,从整体到局部才能透彻理解各个模块的功能和背后设计的思路!
须臾之余
2021/12/28
2940
多线程进阶——JUC并发编程之Executors框架设计思想一探究竟🔥
推荐阅读
相关推荐
ScheduledThreadPoolExecutor原理探究
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验