定时任务(TimeTask如何延期执行)

发布于 2022-09-06 02:56:44 字数 384 浏览 24 评论 0

定义一个定时任务timerTask,将其提交到一个timer中,设定5分钟后执行该任务。现有需求如下:
定时任务的目的是执行一个业务操作,但此操作的执行前提是通过一个状态判定:假设这个判定叫flag,当flag=1的时候,可以执行那个业务操作,但是当flag=0,那么这个定时任务需要再延期一段时间(一段时间后,再次执行判定和业务操作)
timerTask的run方法里,写这个判定……
判定flag=1时,直接按预期计划执行这个定时任务中的业务逻辑,但当flag=0时,如何延期执行这个定时任务呢?
我之前直接用sleep方法,但这样会让这个线程处于等待状态,十分不妙(在大并发情况下,线程资源不能被这样浪费掉)。我的想法是,将这次的定时任务先取消掉,再把该定时任务扔到另一个timer中去定时,不知这样可否?
求助求助哇

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

面如桃花 2022-09-13 02:56:44
import java.util.*;  

public class test {  
public static void main(String[] args) {  
    Timer timer = new Timer();// 实例化Timer类  
    timer.schedule(new TimerTask() {  
        public void run() {  
            System.out.println("退出");  
            this.cancel();  
        }  
    }, 5000);// 这里百毫秒  
    System.out.println("本程序存在5秒后自动退出");  
}  
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文