子线程join()的疑问!join后子线程还是并发的么?
我写了一个程序,对某个servlet发送xml做压力测试。
主线程起来后,起10个子线程,每个子线程对目标发送POST请求,是并发的。
我现在要在主线程里面统计10个并发线程都发完后,程序执行所用的时间,用了join()方法,让子线程join到父线程中来,但是这样做以后,发现10个子线程不是并发的了,而是顺序执行。也就是说先起的子线程先跑完再跑第2个子线程。
代码:
public static void main(String[] args) {
long startMillis = System.currentTimeMillis();
System.out.println(new Date() + " - Firing Now !");
for (int i = 0; i < 10; i++) {
Thread fire = new Thread(new Gun(args[1], args[2], i));
fire.start();
fire.join();
}
System.out.println(new Date() + " - Fired for " +
(System.currentTimeMillis() - startMillis)
+ " ms");
}