定时器

java的定时器用法

拜拜、爱过 提交于 2020-02-24 04:59:21
java定时器的使用 定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后运行。定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现详细任务。 schedule(TimerTask task, Date time)设定指定任务task在指定时间time运行。 cancel()方法结束这个定时器。 schedule(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定延迟peroid的运行。 scheduleAtFixedRate(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定频率peroid的运行。 要实现一个定时任务,运用java中的Timer和TimerTask类能够很easy实现实时调用处理函数。这两个类使用起来很方便,能够完毕我们对定时器的绝大多数须要。 看个简单的样例: import java.io.IOException; import java.util.Timer; public class TimerTest { public

java定时器的使用

情到浓时终转凉″ 提交于 2020-02-24 04:57:52
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后执行。定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现具体任务。 schedule(TimerTask task, Date time)设定指定任务task在指定时间time执行。 cancel()方法结束这个定时器。 schedule(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定延迟peroid的执行。 scheduleAtFixedRate(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定频率peroid的执行。 要实现一个定时任务,运用java中的Timer和TimerTask类可以非常容易实现实时调用处理函数。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需要。 看个简单的例子: import java.io.IOException; import java.util.Timer; public class TimerTest { public static void

pyqt5 -- 定时器

試著忘記壹切 提交于 2020-02-23 22:53:48
from PyQt5 . Qt import * import sys class Mywidget ( QWidget ) : def __init__ ( self ) : super ( ) . __init__ ( ) self . setWindowTitle ( 'PyQt5--定时器' ) self . resize ( 500 , 500 ) self . time_id = self . startTimer ( 1000 ) def timerEvent ( self , eve ) : self . resize ( self . width ( ) + 100 , self . height ( ) + 100 ) if self . width ( ) == 1000 : self . killTimer ( self . time_id ) class Mylabel ( QLabel ) : def __init__ ( self , * args , ** kwargs ) : # 传递参数的意义,是为了让lable成为window的子控件 super ( ) . __init__ ( * args , ** kwargs ) self . setText ( '10' ) self . move ( 200 , 195 ) self .

51单片机 | 定时/计数器原理及结构(T0和T1)

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-21 01:06:06
———————————————————————————————————————————— 定时 / 计数器结构(T0和T1) 16 位寄存器T0、T1分别由TH0、TL0和TH1、TL1四个8位计数器组成 定时器的区别: T0可分成2个独立的8位定时器,而定时器1则不能; T1可作为串口的波特率发生器,而定时器0则不能。 工作原理 用途:定时器和计数器 核心:加 1 计数器 原理:每来一个脉冲则加 1 计数器加 1 ,当加到全 1 时再来一个脉冲使加 1 计数器归零,同时加 1 计数器的溢出使TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求 脉冲来源: 定时器:脉冲来源是由系统的时钟晶振器输出脉冲源提供 计数器:脉冲来源是由T0或T1引脚(P3.4或P3.5)输入的外部脉冲源提供 注:T0或T1都不能同时既做定时器也做计数器 补充: 计数器工作原理: 用作计数器时,对T0或T1引脚的外部脉冲计数,如果前一个机器周期采样值为1,后一个机器周期采样值为0 ,则说明有一个脉冲,计数器加1。 在每个机器周期的 S5P2 期间采样引脚输入电平。新的计数初值于下一个机器周期的 S3P1 期间装入计数器。 此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计数频率为时钟频率的1/24。 S5P2: S5P2指的是第5个时钟周期的相位2。

学习swoole之进程信号触发

白昼怎懂夜的黑 提交于 2020-02-18 13:31:30
准备工作: 使用VMware软件安装Centos7 安装php7 和swoole扩展 < ?php //进程信号触发函数 swoole_process : : signal ( SIGALRM , function ( ) { // $i = 0 ; echo "$i\n" ; $i ++ ; if ( $i > 50 ) { swoole_process : : alarm ( - 1 ) ; //清除定时器 } } ) ; /** * $interval_usec 定时器间隔时间,单位为微妙。如果为负数表示清除定时器 $type 定时器类型,0 表示为真实时间,触发SIGALAM信号,1 表示用户态CPU时间,触发SIGVTALAM信号,2 表示用户态+内核态时间,触发SIGPROF信号 设置成功返回true,失败返回false,可以使用swoole_errno得到错误码 */ swoole_process : : alarm ( 100 * 1000 ) ; //类似Javascript的setInterval()函数,启动定时器 执行效果: 来源: CSDN 作者: zq20192019 链接: https://blog.csdn.net/u014265398/article/details/104372704

STM32学习笔记5(TIM通用模块定时功能)

吃可爱长大的小学妹 提交于 2020-02-17 11:41:33
原文地址: http://blog.sina.com.cn/s/blog_49cb42490100s6ud.html 1. STM32 的 Timer 简介 STM32中一共有 11个定时器,其中 2个高级控制定时器, 4个普通定时器和 2个基本定时器,以及 2个看门狗定时器和 1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的 SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的 8个定时器。 定时器 计数器分辨率 计数器类型 预分频系数 产生 DMA请求 捕获 /比较通道 互补输出 TIM1 TIM8 16位 向上,向下,向上 /向下 1-65536之间的任意数 可以 4 有 TIM2 TIM3 TIM4 TIM5 16位 向上,向下,向上 /向下 1-65536之间的任意数 可以 4 没有 TIM6 TIM7 16位 向上 1-65536之间的任意数 可以 0 没有 其中 TIM1和 TIM8是能够产生 3对 PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由 APB2的输出产生。 TIM2-TIM5是普通定时器, TIM6和 TIM7是基本定时器,其时钟由 APB1输出产生。由于 STM32的 TIMER功能太复杂了,所以只能一点一点的学习。因此今天就从最简单的开始学习起,也就是 TIM2-TIM5普通定时器的定时功能。 2. 普通定时器 TIM2

时间子系统三——低精度定时器和高精度定时器

纵然是瞬间 提交于 2020-02-17 05:32:48
先有低精度定时器,后来引入了高精度定时器。低精度定时器只能提供毫秒级别的定时时间,因为它实际上是依赖于jiffies的,一个jiffies的时间,就是其能够提供的最小定时时间,比如CONFIG_HZ配置为250,那么一个jiffies就是4ms,所以低精度定时器的精度就是4ms;而高精度定时器则不一样,它不依赖于jiffies,甚至jiffies是依赖于高精度定时器的,因为jiffies的累加实际上也是通过一个特殊的高精度定时器来实现的,高精度定时器只依赖于硬件timer,所以可以提供纳秒级别的精度。那么除了从函数接口上看到的定时事件精度的差异之外,高精度定时器和低精度定时器还有哪些不一样呢?下面通过实例来探讨一下。 高精度定时器测试代码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/time64.h> #include <linux/hrtimer.h> #include <linux/timekeeper_internal.h> #define GET_TIME_SAMPLES_CNT 32 #define HRTIMER_TIMEOUT_NSECOND 1000000000 static int g_get_time_index = 0; static struct hrtimer g

函数防抖

隐身守侯 提交于 2020-02-17 03:05:23
函数防抖的实现; 概述:一个处理函数会在延迟n秒后触发,如果在n秒内再次触发那么回重新计时; < script > var throttle = function ( func , delay ) { // 存储定时器id; var timer = null return function ( ) { // 判断定时器是否在执行中; if ( timer ) { // 在每次开始之前清除以前的定时器; clearTimeout ( timer ) } timer = setTimeout ( function ( ) { func ( ) } , delay ) } } // 要进行处理的函数; function handle ( ) { console . log ( Math . random ( ) ) } window . addEventListener ( 'mousemove' , throttle ( handle , 1000 ) ) < / script > 优点:防止用户由于过快的操作而发起的无用的请求; 使用场景: 1、淘宝的导航列表; 2、搜索框搜索输入。只需用户最后一次输入完成,在发送请求; 3、浏览器的窗口大小改变后,只需窗口调整完成后,在执行 resize 里面是代码,防止重新渲染; 来源: CSDN 作者: 我也憧憬过; 链接: https:/

stm32学习之路定时器的使用

流过昼夜 提交于 2020-02-16 13:08:13
上次讲了滴答定时器,这个我们来说下stm32 的其他定时器,分别有三种, 基本定时器,通用定时器和 高级定时器,在STM32F1 的定时器中分别由2 个基本定时器(TIM6、 TIM7) 、 4 个通用定时器(TIM2-TIM5) 和 2 个高级定时器(TIM1、 TIM8) 组成(这些资料也有),这接进入主题吧,这次我们讲的是stm32 的通用定时器(从简单的入门). 通用定时器包含一个 16 位自动重载计数器(CNT) ,就是可以计数2^16次,还有其计数的频率可以由分频系数 PSC 来控制,PSC的取值范围为1~65535,定时器的能实现什么功能就不说了,也找的到,这次通过定时器来控制led亮和灭。 开始之前我们要添加stm32f10x_tim.c 库文件,定时器器的所需要的配置函数都在这个库里面。 在stm中很多操作都是要先时钟使能,以通用定时器TIM3为例子,首先是通用定时器是挂载在APB1总线上,所以可以使用 APB1 总线时钟使能函数来使能 TIM3, 调用的库函数如下: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能 TIM3钟 其次就是初始化时钟(配置时钟)调用的函数是 void TIM_TimeBaseInit(TIM_TypeDef *TIMx,TIM_TimeBaseInitTypeDef *

单片机的时钟

十年热恋 提交于 2020-02-14 11:01:57
http://www.easy-key.com/home/article/news_details/aid/5718 我们先来理解几个比较重要的概念:时间周期、指令周期、机器周期,以及系统时钟的工作原理。 时钟周期: 时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。 在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12