黑马程序员技术交流社区

标题: 测试多线程执行时间 [打印本页]

作者: oath    时间: 2013-8-16 11:52
标题: 测试多线程执行时间
本帖最后由 oath 于 2013-8-17 07:16 编辑
  1. package test;

  2. abstract class Temple{
  3.         
  4.         public void getTime(){
  5.                 long start = System.currentTimeMillis();
  6.                 System.out.println("程序开始时间:" + start);
  7.                
  8.                 runcode();
  9.                
  10.                 long end = System.currentTimeMillis();               
  11.                 System.out.println("程序结束时间:"+end);
  12.                
  13.                 System.out.println("程序用时:"+(end-start));        
  14.         }
  15.         abstract void runcode() ;        
  16. }
  17. class SaleTicket implements Runnable{
  18.         
  19.         public void run(){
  20.                 int ticket = 1000;        
  21.                 for (int i = 0; i < 1000; i++) {                                       
  22.                                 if( ticket > 0 ) {                                                
  23.                                         System.out.println(Thread.currentThread().getName()+": "+ticket--);                        
  24.                                 }                        
  25.                 }        
  26.         }        
  27. }
  28. class Temple_Thread extends Temple{
  29.         @Override
  30.         void runcode() {
  31.                 // TODO Auto-generated method stub
  32.                
  33.                 SaleTicket st = new SaleTicket();
  34.                
  35.                 Thread t1 = new Thread(st,"one");
  36.                 Thread t2 = new Thread(st,"two");
  37.                 Thread t3 = new Thread(st,"third");
  38.                 t1.start();
  39.                 t2.start();
  40.                 t3.start();                                       
  41.         }
  42. }
  43. class test{        
  44.         public static void main(String[] args) {
  45.                 new Temple_Thread().getTime();               
  46.         }        
  47. }
复制代码
上面的程序,多次测试,结果程序运行时间都为0,不应该啊……

大家帮我看看哪里写错了

作者: funneies    时间: 2013-8-16 13:35
可能程序出错了,你看看。
  1. abstract class Temple{
  2.         
  3.         public void getTime(){
  4.                 long start = System.currentTimeMillis();
  5.                 System.out.println("程序开始时间:" + start);
  6.                
  7.                 runcode();
  8.                
  9.                 long end = System.currentTimeMillis();               
  10.                 System.out.println("程序结束时间:"+end);
  11.                
  12.                 System.out.println("程序用时:"+(end-start));        
  13.         }
  14.         abstract void runcode() ;        
  15. }
  16. class SaleTicket implements Runnable{
  17.         
  18.         public void run(){
  19.                 int ticket = 1000;        
  20.                 for (int i = 0; i < 1000; i++) {                                       
  21.                                 if( ticket > 0 ) {                                                
  22.                                         System.out.println(Thread.currentThread().getName()+": "+ticket--);                        
  23.                                 }                        
  24.                 }        
  25.         }        
  26. }
  27. class Temple_Thread extends Temple{
  28.         @Override
  29.         void runcode() {
  30.                 // TODO Auto-generated method stub
  31.                   
  32.         SaleTicket st = new SaleTicket();
  33.         
  34.         Thread t1 = new Thread(st,"one");
  35.         Thread t2 = new Thread(st,"two");
  36.         Thread t3 = new Thread(st,"third");
  37.         t1.start();
  38.         t2.start();
  39.         t3.start();     
  40.         }
  41. }
  42. public class Test{        
  43.         public static void main(String[] args) {
  44.                 new Temple_Thread().getTime();               
  45.         }
  46. }
复制代码
运行结果:
程序开始时间:1376630931500
one: 1000
程序结束时间:1376630931534
程序用时:34
third: 1000
third: 999
third: 998
two: 1000
third: 997
。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2