Java by API/java.util/Timer

Материал из Java эксперт
Перейти к: навигация, поиск

new Timer()

   <source lang="java">
 

/*

* Output:

Timer task executed. Timer task executed. Timer task executed. Timer task executed. Timer task executed. */ import java.util.Timer; import java.util.TimerTask; class MyTimerTask extends TimerTask {

 public void run() {
   System.out.println("Timer task executed.");
 }

} public class MainClass {

 public static void main(String args[]) {
   MyTimerTask myTask = new MyTimerTask();
   Timer myTimer = new Timer();
   /*
    * Set an initial delay of 1 second, then repeat every half second.
    */
   myTimer.schedule(myTask, 1000, 500);
   try {
     Thread.sleep(5000);
   } catch (InterruptedException exc) {
   }
   myTimer.cancel();
 }

}


 </source>
   
  
 
  



Timer: cancel()

   <source lang="java">
 

/* From http://java.sun.ru/docs/books/tutorial/index.html */ /*

* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -Redistribution of source code must retain the above copyright notice, this
*  list of conditions and the following disclaimer.
*
* -Redistribution in binary form must reproduce the above copyright notice,
*  this list of conditions and the following disclaimer in the documentation
*  and/or other materials provided with the distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
* OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN")
* AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
* AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
* INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
* OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed, licensed or intended
* for use in the design, construction, operation or maintenance of any
* nuclear facility.
*/

import java.util.Timer; import java.util.TimerTask; /**

* Simple demo that uses java.util.Timer to schedule a task to execute once 5
* seconds have passed.
*/

public class Main {

 Timer timer;
 public Main(int seconds) {
   timer = new Timer();
   timer.schedule(new RemindTask(), seconds * 1000);
 }
 class RemindTask extends TimerTask {
   public void run() {
     System.out.println("Time"s up!");
     timer.cancel(); //Terminate the timer thread
   }
 }
 public static void main(String args[]) {
   System.out.println("About to schedule task.");
   new Main(5);
   System.out.println("Task scheduled.");
 }

}


 </source>
   
  
 
  



Timer: scheduleAtFixedRate(TimerTask task, long delay, long period)

   <source lang="java">

/* From http://java.sun.ru/docs/books/tutorial/index.html */ /*

* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -Redistribution of source code must retain the above copyright notice, this
*  list of conditions and the following disclaimer.
*
* -Redistribution in binary form must reproduce the above copyright notice,
*  this list of conditions and the following disclaimer in the documentation
*  and/or other materials provided with the distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
* OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN")
* AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
* AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
* INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
* OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed, licensed or intended
* for use in the design, construction, operation or maintenance of any
* nuclear facility.
*/

import java.awt.Toolkit; import java.util.Timer; import java.util.TimerTask; /**

* Schedule a task that executes once every second.
*/

public class Main {

 Toolkit toolkit;
 Timer timer;
 public Main() {
   toolkit = Toolkit.getDefaultToolkit();
   timer = new Timer();
   timer.scheduleAtFixedRate(new RemindTask(), 0, //initial delay
       1 * 1000); //subsequent rate
 }
 class RemindTask extends TimerTask {
   int numWarningBeeps = 3;
   public void run() {
     if (numWarningBeeps-- > 0) {
       long time = System.currentTimeMillis();
       if (time - scheduledExecutionTime() > 5) {
         return;
       }
       //If it"s not too late, beep.
       toolkit.beep();
       System.out.println("Beep!");
     } else {
       toolkit.beep();
       System.out.println("Time"s up!");
       //timer.cancel(); //Not necessary because we call System.exit
       System.exit(0); //Stops the AWT thread (and everything else)
     }
   }
 }
 public static void main(String args[]) {
   new Main();
 }

}


 </source>
   
  
 
  



Timer: schedule(TimerTask task, Date firstTime, long period)

   <source lang="java">
 

/*

* Output:

Timer task executed. Timer task executed. Timer task executed. Timer task executed. Timer task executed. */ import java.util.Timer; import java.util.TimerTask; class MyTimerTask extends TimerTask {

 public void run() {
   System.out.println("Timer task executed.");
 }

} public class MainClass {

 public static void main(String args[]) {
   MyTimerTask myTask = new MyTimerTask();
   Timer myTimer = new Timer();
   /*
    * Set an initial delay of 1 second, then repeat every half second.
    */
   myTimer.schedule(myTask, 1000, 500);
   try {
     Thread.sleep(5000);
   } catch (InterruptedException exc) {
   }
   myTimer.cancel();
 }

}


 </source>