首頁  >  文章  >  Java  >  Java 定時器(Timer)及執行緒池裡使用定時器實例程式碼

Java 定時器(Timer)及執行緒池裡使用定時器實例程式碼

高洛峰
高洛峰原創
2017-01-11 15:51:391420瀏覽

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中文程式碼相關文章!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn