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

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

高洛峰
高洛峰asal
2017-01-11 15:51:391420semak imbas

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 定时器(Timer)及线程池里使用定时器实例代码相关文章请关注PHP中文网!


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn