加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 定时器(Timer)及线程池里使用定时器实例代码

发布时间:2020-12-14 14:38:34 所属栏目:Java 来源:网络整理
导读:java Timer定时器 简单实例代码: public class Test { public static void main(String[] args) { // Timer定时器 Timer mTimer = new Timer(); MyTack myTack = new MyTack(); mTimer.schedule(myTack,2000,3000);//第一个参数是需要执行的任务 第二个参数

java Timer定时器

简单实例代码:

public class Test {


  public static void main(String[] args) {


    // Timer定时器

    Timer mTimer = new Timer();
    MyTack myTack = new MyTack();
    mTimer.schedule(myTack,2000,3000);//第一个参数是需要执行的任务 第二个参数是延迟多少时间最开始执行,第三个参数是执行完后多少时间后进行再次执行是一个周期性的
    Scanner mScanner = new Scanner(System.in);
    String exti = "";
    while(!exti.equals("1")){
      System.out.println("---->>");
      exti = mScanner.next();
    }
    System.out.println("关闭");
    mTimer.cancel();//关闭这个定时器
    mScanner.close();
  }

  static class MyTack extends TimerTask{

    @Override
    public void run() {
      System.out.println("执行任务");

    }

  }
}

线程池里的定时器

public class Test {

  public static void main(String[] args) {

    // 定时器
    ScheduledExecutorService service = Executors.newScheduledThreadPool(3);
    service.scheduleWithFixedDelay(new MyRunnable(),10000,TimeUnit.MILLISECONDS);//一个参数是实例化一个runnable的对象,第二个参数是延迟多长时间后执行,第三个参数是执行一次后需要等待多长时间后执行第二次是一个周期性的,第四个参数是按类型算(毫秒,秒,分。。等其他的一些类型).
  }

}

//需要写一个实现runnable接口的类
public class MyRunnable implements Runnable {

  @Override
  public void run() {
    int index = 0;
    while (index++ < 100) {
      System.out.println(Thread.currentThread().getName()+" "+index);
      try {
        Thread.sleep(50);
      } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }

  }

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读