多线程运行时间计算有关问题
多线程运行时间计算问题
------解决方案--------------------
有一个简单思路。
isAlive()可以查看该线程是否结束。
可以在开始第一个线程的时候获得时间,期间循环检查是否有线程未结束,直到全部线程都结束,再次获得时间,做减法
------解决方案--------------------
你把需要运行的执行体放在构造方法的中间啊,执行体不能包含多线程
------解决方案--------------------
利用CountDownLatch这个类,countDown和await这两个方法很有用
------解决方案--------------------
参考9楼,把你的线程在启动的时候放到指定的线程组里。
代码如下
for(int i=0,j=list.size();i<j;i++){
Thread t = new xxxThread(xx);
t.start();
}
//该如何计算第一个线程开始和最后一个线程结束;
多线程
thread
java
------解决方案--------------------
有一个简单思路。
isAlive()可以查看该线程是否结束。
可以在开始第一个线程的时候获得时间,期间循环检查是否有线程未结束,直到全部线程都结束,再次获得时间,做减法
------解决方案--------------------
你把需要运行的执行体放在构造方法的中间啊,执行体不能包含多线程
------解决方案--------------------
利用CountDownLatch这个类,countDown和await这两个方法很有用
------解决方案--------------------
参考9楼,把你的线程在启动的时候放到指定的线程组里。
代码如下
public static void main(String[] args) {
ThreadGroup thGroup = new ThreadGroup("MyTest");
long startTs = System.currentTimeMillis();
for(int i=0;i<10;i++){
final int id = i;
Thread subThread = new Thread(thGroup, new Runnable(){
// Create a thread which will run random time 0~5 sec.
public void run() {
int myId = id;
int sec = (int) (Math.random()*5000);
try {
Thread.sleep(sec);
} catch (InterruptedException e) {
}
System.out.printf("Thread %d runed %f sec\n", myId, sec/1000.0);
}
});
subThread.start();
}
// wait all thread down.