线程基础问题
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);
让主线程睡足够久不也可以吗