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

 更新时间:2016年12月25日 15:12:51   投稿:lqh  
这篇文章主要介绍了Java 定时器(Timer)及线程池里使用定时器实例代码的相关资料,需要的朋友可以参考下

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(), 0, 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();
      }
    }

  }

}

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

相关文章

  • 零基础写Java知乎爬虫之进阶篇

    零基础写Java知乎爬虫之进阶篇

    前面几篇文章,我们都是简单的实现了java爬虫抓取内容的问题,那么如果遇到复杂情况,我们还能继续那么做吗?答案当然是否定的,之前的仅仅是入门篇,都是些基础知识,给大家练手用的,本文我们就来点高大上的东西
    2014-11-11
  • 实例详解Java8函数式接口

    实例详解Java8函数式接口

    本文给大家分析了Java8默认方法和函数式接口实例其它创建方式,需要的朋友跟着学习下吧。
    2017-11-11
  • java实现俄罗斯方块小游戏

    java实现俄罗斯方块小游戏

    这篇文章主要为大家详细介绍了java实现俄罗斯方块小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 解决报错:java.lang.IllegalStateException: Failed to execute CommandLineRunner问题

    解决报错:java.lang.IllegalStateException: Failed to&nb

    在项目开发中,可能会遇到Elasticsearch启动报错的问题,原因可能包括版本不一致、端口配置错误、配置文件不匹配及服务未启动等,解决方法包括检查进程、重启服务等,这些经验可以帮助开发者快速定位问题并解决,保证项目顺利运行
    2024-10-10
  • java多线程之wait(),notify(),notifyAll()的详解分析

    java多线程之wait(),notify(),notifyAll()的详解分析

    本篇文章是对java多线程 wait(),notify(),notifyAll()进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Java编程用栈来求解汉诺塔问题的代码实例(非递归)

    Java编程用栈来求解汉诺塔问题的代码实例(非递归)

    这篇文章主要介绍了Java编程用栈来求解汉诺塔问题的代码实例(非递归),具有一定参考价值,这里给大家分享下,供朋友们参考。
    2017-10-10
  • java 两阶段终止线程的正确做法

    java 两阶段终止线程的正确做法

    这篇文章主要给大家分享了java 两阶段终止线程的正确做法,文章列举出错误的做法与正确做法做对比,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-12-12
  • java使用lambda表达式对List集合进行操作技巧(JDK1.8)

    java使用lambda表达式对List集合进行操作技巧(JDK1.8)

    这篇文章主要介绍了java使用lambda表达式对List集合进行操作技巧适用jdk1.8,感兴趣的朋友跟着小编一起看看实现代码吧
    2018-06-06
  • mybatis如何批量添加一对多中间表

    mybatis如何批量添加一对多中间表

    这篇文章主要介绍了mybatis如何批量添加一对多中间表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 强烈推荐这些提升代码效率的IDEA使用技巧

    强烈推荐这些提升代码效率的IDEA使用技巧

    在平常的开发中,发现一些同事对Idea 使用的不是很熟练,仅仅用来编辑,编译,不能很好的发挥Idea 的神奇.整理了下我平常用的一些技巧,希望你能从中学习到一些.需要的朋友可以参考下
    2021-05-05

最新评论