请教一个多线程的问题

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

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

mooncui
2006-04-24 13:24
Thread 有个join方法,不知道是否合适?

join() Waits for this thread to die.

leoyu
2007-05-24 18:18
banq说的设置个标志,是一种方案

然后你可以为你的这个方法封装成一个线程,让这个对象wait().然后再notify() 唤醒并执行你的方法

java0000000
2007-06-10 16:47
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();

}

}

猜你喜欢
2Go 1 2 下一页