package com.jd.schdule;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* ScheduledThreadPool执行延时任务
* 多线程执行多延时任务
* 单线程执行多延时任务
* @author yfzhangbin
*/
public class SchduleTest {
public static void main(String[] args) {
ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(2);
ScheduledExecutorService singleThread = Executors.newSingleThreadScheduledExecutor();
threadPool.schedule(new MyScheduledTask("t1"), 1, TimeUnit.SECONDS);
threadPool.schedule(new MyScheduledTask("t2"), 1, TimeUnit.SECONDS); // t1、t2在多个线程执行t1延时不会影响t2
singleThread.schedule(new MyScheduledTask("t3"), 1, TimeUnit.SECONDS);
singleThread.schedule(new MyScheduledTask("t4"), 1, TimeUnit.SECONDS); // t3、t4 在同一线程执行t3延时会影响 t4
threadPool.shutdown();
singleThread.shutdown();
}
}
class MyScheduledTask implements Runnable {
private String tname;
public MyScheduledTask(String tname) {
this.tname = tname;
}
@Override
public void run() {
System.out.println(tname+"任务开始执行");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(tname+"任务执行完毕!!!");
}
}
输出:
t1任务开始执行
t2任务开始执行
t3任务开始执行
t3任务执行完毕!!!
t4任务开始执行
t2任务执行完毕!!!
t1任务执行完毕!!!
t4任务执行完毕!!!
分享到:
相关推荐
android 延时或重复执行任务 Timer使用, Handler , Thread , AlarmManager
DelayQueue是一个无界阻塞队列,只有在延迟期满时,才能从中提取元素。这篇文章主要介绍了springboot执行延时任务-DelayQueue的使用,需要的朋友可以参考下
@echo off pushd "%~dp0" timeout /t 20 /nobreak start msconfig.exe ------------------------------- 延时20秒 启动 msconfig.exe 内容就这些
项目简介 使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab 查看文档 原有的延时任务拆分为独立项目延迟队列 功能特性 ...任务执行结果通知, 支持邮件、Slack、Webhook
ucosii 恢复延时中的任务
通电延时和断电延时电路接线图 通电延时亮灯(如图): 延时断电(如图): ...当断电延时继电器供应断电后延时触点闭锁然后进行转换工作状态,当延时触点超过整定的时间后驱动电路执行初始状态。
延时执行跳转或执行函数 url可以为地址或者定义好的javascript/jquery函数, 定义每次延时时间和延时次数, callback是每次延时可以执行的回调函数
js延时函数 JS延时执行 JS延时执行代码
主要介绍了使用Redis实现延时任务的解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
为什么要用定时与延时任务? 很多运维任务都是在凌晨完成的,如果运维工程师每天都是凌晨干活,那么用不了多久,运维工程师就挂掉了!所以学习定时与延时任务很有必要。 【19年秋招大疆运维工程师笔试题】 11月份...
主要是一些51常用的延时,以及延时所需时间的算法,即如何计算延时的时间长度
本文将为你介绍一个名为LsCron的Java定时任务小工具,它可以帮助你实现指定时间执行任务的需求。该工具使用DeplayQueue延时队列作为软件架构,通过简单的步骤即可完成安装和使用。首先,你需要创建一个实现LsDelayed...
// Function : XSleep() // Purpose : To make the application sleep for the specified time // duration. // Duration the entire time duration XSleep sleeps, it // keeps processing the message pump, to ...
通过介绍μC/OSII实时操作系统中的任务延时功能,分析了系统中的任务延时的优缺点。针对任务延时占用处理器时间与任务总数有关和扫描各个任务占用大量处理器时间的问题,对操作系统中的任务延时机制进行改进。
官方库延时函数误差太大,近2倍,在此基于嘀嗒定时器做了毫秒、微妙级别的两个延时函数。1、可用在IO口模拟串口等要求时序操作的场景,如DHT11...可实现 【时间片轮】模型的 单片机系统结构,执行效率高,避免阻塞延时
setTimeout,javascript 延时执行函数,闭包处理 利用javascript闭包处理延时操作
RC延时电路的延时时间计算公式,RC电路的引用及计算
android延迟执行任务,由三个方法,是以一个刷新按钮不断的增加旋转动画执行由这三个方法分别执行
1、VC中的WM_TIMER消息映射能进行简单的时间控制。 2、VC中使用sleep()函数实现延时; 3、。。。。
STM32延时函数,包括毫秒级延时函数和微秒级延时函数两个函数,微妙延时函数延时误差为百分之一,即延时100微妙比实际值少1微妙。