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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值