请教一个多线程的问题

06-04-19 ronin

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个新开的线程都运行完毕后再执行 应该怎么改写代码? 谢谢

banq
2006-04-20 11:28
>40个新开的线程都运行完毕后再执行

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

phppsq
2006-04-27 11:06
>

> 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个新开的线程都运行完毕后再执

> ?应该怎么改写代码? 谢谢

改写后的代码如下:

public class VerifyQueryThread implements Runnable{

public void run(){

...

}

}

public static void startMutiThread(){

Thread t[] = new Thread[40];

for(int j = 0; j < t.length;j++){

t[j] = new Thread(new VerifyQueryThread());

t[j].start();

try{

t[j].join();

}catch(InterruptedException e){

....

}

}

writeLog();

}

}

猜你喜欢