首页 > 代码库 > 简单计时

简单计时


我想要做2个类,DVDPlayer和HomeTheaterFecade, DVDPlayer类里面有Play().Pause(),Resume()和Stop()方法,从HomeTheaterFecade里的主函数调用Play() 并开始计时,从主函数调用Pause()计时暂停,Resume() 继续播放,调用Stop()计时停止。不太会用timer,请教下 谢谢了,请不要粘别人的答案 谢谢。。

何不使用线程?

一些说明我已经写在注释中了


public class Test implements Runnable {


 //定义一个线程

 Thread thread;

 //用于停止线程的标志

 private boolean flag=true;

 public Test(){

  thread=new Thread(this);

 }

 //因为该类实现了Runnable,就必须有run方法,当线程启动时,会调用这个run方法

 public void run(){

  //获得当前的时间,毫秒为单位

  long beginTime=System.currentTimeMillis();

  //定义已过去的时间

  long time=0;

  while(flag){

   //这里写实现计时的代码

   //在这里,获得已过去的时间

   time=System.currentTimeMillis()-beginTime;

   System.out.println("已过"+time+"毫秒");

   

   //暂停线程1秒钟,不暂停的话可以把下面代码去掉

   try{

    Thread.sleep(1000);

   }catch(InterruptedException e1){

    e1.printStackTrace();

   }

  }

 }

 //这里是启动线程的方法,也就是启动线程

 public void start(){

  thread.start();

 }

 //这里是暂停的方法,暂停线程

 public void Pause(){

  try{

   thread.wait();

  }catch(InterruptedException e){

   e.printStackTrace();

  }

 }

 //这里是继续的方法,唤醒线程

 public void Resume(){

  thread.notifyAll();

 }

 //停止线程

 public void stop(){

  //把flag设成false,则在run中的while循环就会停止循环

  flag=false;

 }

 

 public static void main(String []args){

  //用于测试

  Test t=new Test();

  //开始线程

  t.start();

  try{

   //10000毫秒以后结束线程

  Thread.sleep(10000);

  }catch(InterruptedException e1){

  e1.printStackTrace();

  }

  //结束线程

  t.stop();

   

   }

 

}


简单计时