首页 > 其他分享 >定时器

定时器

时间:2024-03-12 15:35:43浏览次数:26  
标签:定时器 java Timer util TimerTask import public

Timer

import java.util.Timer;
import java.util.TimerTask;
/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/12 15:06
 */
public class TimerDemo {
    public static void main(String[] args) {
        //Timer本身也是一个线程
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "执行了一次");
            }
        },3000,2000);
        //Timer是单线程的,当处理多个任务时候,存在延时与设置定时器的时间有出入
        //可能存在某个任务异常,导致后续任务无法正常执行
        
    }
}

ScheduleExecutorService

ScheduleExecutorService是Jdk5引入的并发包,目的是弥补Timer的缺陷,内部使用了线程池。

import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/12 15:15
 */
public class ScheduleExecutorDemo {
    public static void main(String[] args) {
        final ScheduledExecutorService pool = Executors.newScheduledThreadPool(3);
        pool.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "输出");
            }
        },0, 2, TimeUnit.SECONDS);
        pool.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "输出");
            }
        }, 2, TimeUnit.SECONDS);
    }
}

标签:定时器,java,Timer,util,TimerTask,import,public
From: https://www.cnblogs.com/poteitoutou/p/18068413

相关文章

  • C#3种常见的定时器(多线程)
    总结以下三种方法,实现c#每隔一段时间执行代码:方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间;调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间Threadthread=newThread(newThreadStart(obj.Method1));thread.Start();方法二:使用System.Timers......
  • STM32标准库通用定时器输出比较
    STM32标准库通用定时器输出比较1.初始化voidTIM2_Init(){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//使能TIM2时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA时钟 GPIO_InitTypeDefGPIO_InitSt......
  • STM32标准库通用定时器输入捕获
    STM32标准库定时器输入捕获1.输入捕获介绍输入捕获为STM32定时器的一个功能,可以用来测量输入信号的频率和占空比。具体原理:当输入信号经过比较捕获通道时,STM32会依据通道的极性设置决定是否触发捕获中断TIM_IT_CCx。此时定时器会将当前计数值TIMx->CNT的值保存在TIMx->CCRx中,通......
  • 同个线程里,如果线程正在忙过程中,定时器时间到了会被延迟触发吗?
    同个线程里,如果线程正在忙过程中,定时器时间到了会被延迟触发吗?在同一线程中,如果线程正在忙过程中,定时器的触发事件会被延迟,直到线程空闲下来才会被触发。这是因为在QT中,线程和定时器的处理都是通过事件循环来完成的。当线程处于忙碌状态时,事件循环将会被阻塞,直到线程执行完当前的......
  • Unity3D 多线程定时器的原理与实现详解
    Unity3D提供了丰富的功能和工具,让开发者可以轻松地创建各种类型的游戏。其中,定时器是一个非常重要的功能,在游戏开发中经常会被使用到。Unity3D中并没有提供原生的多线程定时器功能,但我们可以通过一些技巧和方法来实现一个多线程定时器。对啦!这里有个游戏开发交流小组里面聚集了......
  • STM32标准库通用定时器计数
    STM32标准库通用定时器计数1.定时器初始化voidTIM2_Init(){ TIM_TimeBaseInitTypeDefTIM2_Initstructure;//定义结构体 NVIC_InitTypeDefNVIC_InitStructure;//定义结构体 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE......
  • STM32标准库基本定时器
    STM32标准库基本定时器1.定时器初始化voidTIM6_Init()//定时器6初始化{ TIM_TimeBaseInitTypeDefTIM_TimBaseStructure;//定义定时器结构体 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);//使能定时器6的时钟 TI......
  • 并发编程之定时器
    定时器定时器,指定n秒后执行某操作简易版:fromthreadingimportTimerdeftask(name):print('hello%s'%name)t=Timer(5,task,args=('xiao',))t.start()#helloxiao应用版:##验证码定时器fromthreadingimportTimerimportrandomclassCode:......
  • 对于需要实时处理的代码语句 就用定时器中断模式,实现多线程模式,建议不要用查询模式。
    对于需要实时处理的代码语句就用定时器中断模式,实现多线程模式,建议不要用查询模式。 示例代码1:查看代码#include"delay.h"#include"sysInt.h"#include"intrins.h"charSMGDuan[]={0x5B,0x3F,0x5B,0x66, 0x40,0x40, 0x3F,0x3F}; //2024--MMcharsegDuan[]={0x3F,0......
  • 定时器
    定时器的概念程序里的定时器主要实现的功能是在未来的某个时间点执行相应的逻辑interval:间隔时间,即定时器需要在interval时间后执行StartTimer:添加一个定时器任务StopTimer:结束一个定时器任务PerTickBookkeeping:检查定时器系统中,是否有定时器实例已经到期,相当于定义了最小......