日期:2014-05-20  浏览次数:20683 次

线程基础问题
for   (int   i=0;i <10;i++)
{
      new   Thread(new   a()).start();
}

System.out.println( "所的线程执行完! ");

我想让前面的十个线程都执行完后再执行最后的那个print语句
应该怎么写代码?
谢谢!

------解决方案--------------------
简单处理的话,用一个静态int变量,每个线程结束给int加个1
后面:
while(i!=10){
//do nothing but wait
}
System.out.println( "所的线程执行完! ");
------解决方案--------------------
创建线程后,可以通过isAlive()方法判断线程的状态。
Thread t = new Thread(new A());
t.start();

if(!t.isAlive())
{
print();
}
------解决方案--------------------
这样试试
for (int i=0;i <10;i++)
{
Thread t = new Thread(new a());
t.start();
t.join();
//new Thread(new a()).start();
}

System.out.println( "所的线程执行完! ");


------解决方案--------------------
you can
for (int i=0;i <10;i++)
{
//Thread t = new Thread(new a());
//t.start();
//t.join();
new Thread(new a()).start();
}
Thread.sleep(3000);
让主线程睡足够久不也可以吗