当前位置: 代码迷 >> J2SE >> 监控线程结束解决思路
  详细解决方案

监控线程结束解决思路

热度:28   发布时间:2016-04-24 01:01:26.0
监控线程结束
我有一个main方法,起了10个线程,我想在main方法中统计一下10个线程跑完后,总共用了多长时间。怎么弄??

------解决方案--------------------
启动线程前,用System.currentTimeMillis()记录启动时间。

然后用join等待线程执行结束,然后再次调用System.currentTimeMillis(),并得到时间差。
------解决方案--------------------
Java code
import java.text.SimpleDateFormat;import java.util.Date;public class C {    private static int i = 0;    synchronized static void increase() {        if (i < 9) {            i++;        } else {            C.class.notify();        }    }    public static void main(String[] args) {        synchronized (C.class) {            long begin = System.currentTimeMillis();            for (int i = 0; i <= 9; i++) {                new Thread(new T()).start();            }            try {                C.class.wait();            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            System.out.println(new SimpleDateFormat("ss秒SSS毫秒")                    .format(new Date(System.currentTimeMillis() - begin)));        }    }    static class T implements Runnable {        @Override        public void run() {            // dosomething            C.increase();        }    }}
  相关解决方案