ScheduledThreadPoolExecutor周期性执行线程任务scheduleAtFixedRate

本文演示了如何使用ScheduledThreadPoolExecutor创建一个每3秒执行一次的任务,并在另一个线程中安排12秒后关闭该定时任务执行器。输出显示了定时任务的执行情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ScheduledThreadPoolExecutor周期性执行线程任务scheduleAtFixedRate

        ScheduledThreadPoolExecutor mScheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1);
        mScheduledThreadPoolExecutor.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                System.out.println("线程id:" + Thread.currentThread().getId() + "\t" + System.currentTimeMillis());
            }
        }, 0, 3, TimeUnit.SECONDS);

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    TimeUnit.SECONDS.sleep(12);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                System.out.println("关闭ScheduledThreadPoolExecutor");
                mScheduledThreadPoolExecutor.shutdown();
            }
        }).start();

ScheduledThreadPoolExecutor每隔3秒周期性的在线程中打印当前时间。同时另起一个线程,12秒后关闭ScheduledThreadPoolExecutor。

输出:

06-19 15:55:41.469 27469-27499/zhangphil.test I/System.out: 线程id:12150	1529394941469
06-19 15:55:44.467 27469-27499/zhangphil.test I/System.out: 线程id:12150	1529394944467
06-19 15:55:47.467 27469-27499/zhangphil.test I/System.out: 线程id:12150	1529394947467
06-19 15:55:50.468 27469-27499/zhangphil.test I/System.out: 线程id:12150	1529394950467
06-19 15:55:53.466 27469-27499/zhangphil.test I/System.out: 线程id:12150	1529394953466
06-19 15:55:53.468 27469-27500/zhangphil.test I/System.out: 关闭ScheduledThreadPoolExecutor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangphil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值