就是设计一个线程,让他每秒读一边,怎么实现?这个for循环怎么写比较好?

解决方案 »

  1.   

    1 可参考Quartz的实现
      我这里有一个和Spring整合在一起用的例子 http://www.java2000.net/viewthread.jsp?tid=1643
    2 可以自己用Thread.sleep(1000); 模拟,但不是非常精确,比如
      while(true){
        // DO Something
        try{
          Thread.sleep(1000); // 休眠1秒钟
        }catch(Exception ex){}
      }
      

  2.   

    用Thread.sleep(1000); 
    楼上正解
      

  3.   

    public class Test {
        public static void main(String args[]) throws InterruptedException {
            System.out.print("\nCurrent time: ");
            while(true) {            
                System.out.printf("%tF %<tT", System.currentTimeMillis());
                Thread.sleep(500);
                System.out.print("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
            }
        }
    }在控制台下运行挺好玩的。
      

  4.   

    用TIMEER类可能更方便和精确些?
      

  5.   

    4楼大哥  "%tF %<tT"  这是什么意思啊????谢谢~~~~~~~~~~~~~~~~~~
      

  6.   

    你说的每秒做某件事吧。这个好像可以用TimerTask,也就是任务来实现的。还要使用Timer
    private Timer timer = new Timer();
    private CommandCheckerTask overTimeChecker = new CommandCheckerTask();timer.schedule(overTimeChecker, 1000, 500);Note:
    CommandCheckerTask是一个继承了TimerTask并重写了run()方法的类。 run()方法中就是每个时间间隔需要处理的任务。具体的意思请看Timer类的API。也可以自己用Thread实现这个功能。
      

  7.   


    这个啊,这个是 JDK 5 新增加的类似 C 语言的格式化输出,%tF 表示 yyyy-MM-dd
    %tT 表示 HH:mm:ss
    其中的“<”表示引用前一的参数,一般性一个 % 对应着后面的一个值,
    但是这里有两个百分号,后面的值只有一个,就这样引用了。具体的意思详见:java.util.Formatter 的 API DOC。
      

  8.   

    如果注重最后测试的总数 注意使用Timer的scheduleAtFixedRate方法
    以弥补由各种原因导致的延时误差
      

  9.   

            Timer timer=new Timer();
            
            timer.schedule(new MyTask(),long time1,long timer2);//        第一个参数,是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。
    //
    //        第二个参数的意思是,当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个参数是用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行 run() 方法。
    //
    //        第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。