请教一个多线程的问题

public class VerifyQueryThread implements Runnable{
public void run(){
...
}
}

public static void startMutiThread(){
VerifyQueryThread target = new VerifyQueryThread();
for(int j = 0; j < 40;j++){
(new Thread(target)).start();

}
writeLog();
}

我希望writeLog()方法在那40个新开的线程都运行完毕后再执行 应该怎么改写代码? 谢谢

>40个新开的线程都运行完毕后再执行
自己用一个字段记录来进行40个线程完成后的标志,不用试图通过顺序编程就以为实际运行也是这样,线程编程的特点是:你无法控制线程的先后运行次序。

Thread 有个join方法,不知道是否合适?
join() Waits for this thread to die.

banq说的设置个标志,是一种方案
然后你可以为你的这个方法封装成一个线程,让这个对象wait().然后再notify() 唤醒并执行你的方法

import java.lang.*;
class VerifyQueryThread implements Runnable
{
int i=40;
public void run()
{
while(i>0)
{
System.out.println(i--);
}
}


public static void startMutiThread()
{
VerifyQueryThread target = new VerifyQueryThread();
for(int j = 0; j < 40;j++)
{

new Thread(target).start();

}
System.out.println("Test");
//writeLog();
}
public static void main(String [] args)
{
VerifyQueryThread tt=new VerifyQueryThread();
tt.startMutiThread();
}
}

用Runnable 接口实现,,,自已设置一个数当进程启动到指定的数是置否就OK了

楼上的好像错了吧

应该设一个锁定的静态变量自增的方法不知道你能否试一下
当变量到40后设定一个flag标志退出
这方法在线程执行的最后执行

Thread不是有自己判断线程是否处于活动状态的方法吗 ?