- /*
- 楼主想要获得t1和t2线程运行的时间,但是你的代码出现的问题是因为主线程瞬间执行了你的
- 打印时间语句;
- 所以,你的程序中一共有三个线程:主线程+t1线程+t2线程。那么要获得t1和t2的运行时间,
- 就要到它执行完run(){}方法之后,所以,我在下面做了注释,帮楼主将打印时间语句放在了for()之后,
- 在本程序中,只有等t1,t2线程执行完循环后线程才能获得线程运行时间,代码如下:
- */
- class Test extends Thread
- {
- static int i;
- private String name;
- Test(String name)
- {
- this.name=name;
- }
- public void run()
- {
- long start=System.currentTimeMillis();
- for( i=0;i<600;i++)
- {
- System.out.println(name+"run"+i);
- }
- long end=System.currentTimeMillis();
- //将时间获取定义在下面,也就是等到t1和t2线程执行完成后再打印时间:
- System.out.println(Thread.currentThread().getName()+"shijian....."+(end-start));//
- }
- }
- abstract class GetTime
- {
- public final void getTime()
- {
-
- runcode();
-
-
- }
- public abstract void runcode();
- }
- class SubTime extends GetTime
- {
- public void runcode()
- {
- Test t1=new Test("test1");
- Test t2=new Test("test2");
- t1.start();
- t2.start();
-
-
- }
- }
- class demo1 {
- public static void main(String[] args)
- {
- SubTime gt=new SubTime();
- gt.getTime();
- }
- }
复制代码 |