ホームページ  >  記事  >  Java  >  Java タイマー (Timer) とスレッド プールで使用されるタイマー コードの例

Java タイマー (Timer) とスレッド プールで使用されるタイマー コードの例

高洛峰
高洛峰オリジナル
2017-01-11 15:51:391380ブラウズ

Java タイマー

簡単なコード例:

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 タイマー (タイマー) およびスレッド プール内のタイマー コード例関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。