当前位置: 首页 > news >正文

Timer,Thread定时器用法

Timer,TimerTask和Thread用法.

Thread用法

(a) 通过new 创建一个Thread对象 (b)Runnable 就绪,调用start()方法启动 (c) Running 运行,执行run方法的代码 (d)Blocked 阻塞,运行状态的线程,遇到阻塞事件,进入阻塞

栗子:

Runnable runnable = new Runnable() 
{  
  @Override    public void run() {  
      while (true) {   
         Log.d("TAG", "------Thread-----");  
          try {        
        Thread.sleep(阻塞时间);         
   } catch (InterruptedException e) {    
            e.printStackTrace();        
    }   
     }    }};
Thread thread = new Thread(runnable);thread.start();
复制代码
Timer 与 TimerTask用法

(a) 继承TimerTask是实现Runnable接口,重载run方法 (b) 启动和取消任务时可调度,第一次执行任务时可指定想要的delay时间 (c) Timer中允许多个TimerTask任务,TimerTask是以队列的方式一个一个执行的

  1. schedule() 固定延迟调度在任务执行中的每一个延迟会传播到后续的任务的执行
  2. scheduleAsFixedRate() 用固定比率调度。使用本方法时,所有后续执行根据初始执行的时间进行调度,从而希望减小延迟
  3. TimerTask的cancel()将自身从任务队列中清楚,其他任务不受影响
  4. Timer类的cancel():将任务队列中的所有任务清空
  5. Timer.schedule(TimerTask task,Date firstTime,long period):在指定日期之后的间隔周期,无限循环的执行某一个任务
  6. Timer.schedule(TimerTask task,long delay):在当前时间的基础上延迟多长时间执行任务
  7. Timer.schedule(TimerTask task,long delay,long period):在当前时间的基础上延迟多长时间执行任务,再以某一时间间隔执行任务
  8. Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)安排指定的任务在指定的延迟后开始进行重复的固定速率执行
  9. schedule方法和scheduleAtFixedRate方法都是按顺序执行的,所以不用担心非线程安全的问题

栗子:

Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {  
  @Override 
   public void run() {   
     Log.d("TAG", "------Timer + TimerTask-----");  
  }};
timer.schedule(timerTask, delay, timeInterval);
delay: 延迟
timeInterval: 延迟间隔
复制代码

转载于:https://juejin.im/post/5a30fc9d518825293b50502c

相关文章:

  • mycat分片规则之范围约定规则(auto-sharding-long)
  • 使Apache(Linux)支持Silverlight
  • Java IO详解
  • 循环打印视图(学习WHILE循环)
  • rsync同步的实现及其简单源码包的编译安装
  • css3新特性
  • 微信小程序 textarea
  • 从jQuery 入口方式写jQuery工具类库
  • SQL优化常用方法13
  • Maven打uber-jar,运行报读取不到dubbo.xsd的解决方案
  • PHP的引用,你知道多少
  • 06、python 系列之 函数
  • ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
  • 并查集-----hrbust 1073
  • Unity LayerMask 的位运算
  • 【技术性】Search知识
  • co模块的前端实现
  • Elasticsearch 参考指南(升级前重新索引)
  • MYSQL 的 IF 函数
  • PAT A1092
  • Python socket服务器端、客户端传送信息
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • uni-app项目数字滚动
  • vue2.0项目引入element-ui
  • 成为一名优秀的Developer的书单
  • 大快搜索数据爬虫技术实例安装教学篇
  • 分享一份非常强势的Android面试题
  • 汉诺塔算法
  • 基于web的全景—— Pannellum小试
  • 什么软件可以剪辑音乐?
  • 消息队列系列二(IOT中消息队列的应用)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #FPGA(基础知识)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #QT项目实战(天气预报)
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (九)信息融合方式简介
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (算法)N皇后问题
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net 程序发生了一个不可捕获的异常
  • .net 后台导出excel ,word
  • .Net 路由处理厉害了
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net流程开发平台的一些难点(1)
  • []C/C++读取串口接收到的数据程序
  • [2016.7.Test1] T1 三进制异或
  • [Android View] 可绘制形状 (Shape Xml)
  • [ARM]ldr 和 adr 伪指令的区别