timer.java

来自「有关JAVA的SOCKET通讯的源码,主要是基本的通用的代码格式」· Java 代码 · 共 45 行

JAVA
45
字号
package socket.test.timer;/** * (liangyiqing)假如我在一个Timer类里面再定义一个Timer类, * 如果外层定义的时间是24小时循环一次,而内层定义的是1小时循环一次, * 意思就是当一个小时内层运行完一次之后,内层Timer释放资源,我想问, * 外层的Timer是不是也会释放,还是24小时之中一直都在占用? * 我不太清楚你的占用资源是什么意思,如果你在Task中用到一些资源 , * 这些资源应该在Task运行结束后即刻释放,尤其对竞态条件,更应该占用尽量少的时间。 * 一般来说,一次Task的运行时间,将少于你设定的周期。否则,Task将在Timer中堆积起来。 * 如果你要实现上面说的每24小时和每1小时两个周期的操作,可以使用一个Timer,schedule两个Task即可。 */import java.util.*;import java.awt.*;public class Timer { Toolkit toolkit; java.util.Timer timer; public Timer() {  toolkit = Toolkit.getDefaultToolkit();  timer = new java.util.Timer();  timer.schedule(new RemindTask(), 0, 1*1000);//每一秒执行一次RemindTask类的run方法 } class RemindTask extends TimerTask {  //int numWarningBeeps = 3;  public void run() {  /* if (numWarningBeeps > 0) {    toolkit.beep();*/    System.out.println("Beep!");  /*  numWarningBeeps--;   }   else {    toolkit.beep();    System.out.println("Time's up!");    System.exit(0);    }*/  } } public static void main(String args[]){      Timer s=new Timer(); }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?