跟着实例学习java多线程10-定时任务实例Quartz等

本文探讨了定时任务在业务场景中的应用,如数据推送、清理任务和值检查,并强调了定时任务实际上也是一种并发形式。文章提到了并发考虑因素——执行频率和任务耗时。为避免并发问题,作者建议在高频执行且耗时的任务上加同步处理,确保被调用类方法的线程安全性。文中通过java.timer、Quartz框架和线程实现三种定时任务方式进行了示例说明,提醒开发者关注定时任务的并发性问题。
摘要由CSDN通过智能技术生成

定时任务是我们经常遇到的业务场景,我们有很多的功能都需要这样的技术来实现,例如:定时获取一些数据push出去,定时处理一些清理任务,定时检查某个值等。那么我们该怎么实现,在实现中又该注意一些什么?

定时任务就是另开一个线程来执行,其实也是并发的一类,大家可能不好理解,说定时不就是到时间执行一下,怎么还会产生并发,这里主要是看两个指标,一是看执行频率,二是看每次执行的时间,如果执行频率高并且执行任务又会很耗时,那么这时候就形成了并发,当然还有一种情况那就是,定时的job中调用其它类的方法,而正常的业务逻辑中也调用那个类的方法,那么这时在某个巧合的时间也有可能对那个类的调用发生并发。

所以我们在写定时任务的时候也要注意这么两点:

       1:如果执行频率高并且执行任务又会很耗时,要在job的执行方法上加同步处理。

       2:如果job里调用其它类方法,那么其它类所提供的方法也要保证发布成线程安全的。

下面我们举例几种实现定时任务的方式:

1:java提供的timer

package com.home.thread.thread10;

import java.util.Date;
import java.util.Timer;

/**
 * @author gaoxu
 * 实践出真知!
 */
public class TimerMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Timer timer = new Timer();
		timer.schedule(
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值