public void run () { System.out.println(getName()+" a"); }
public void mainrun(){ System.out.println(getName()+"zuihou"+i++); } public static void main(String[] args) throws InterruptedException{ Test t = new Test(); Test t1 = new Test(); Test t2 = new Test(); Test t3 = new Test(); Test t4 = new Test(); Test t5 = new Test(); Test t6 = new Test(); Test t7 = new Test(); Test t8 = new Test(); Test t9 = new Test(); Test t10 = new Test(); t1.start(); System.out.println(t1.getName()); t2.start(); System.out.println(t2.getName()); t3.start(); System.out.println(t3.getName()); t4.start(); System.out.println(t4.getName()); t5.start(); System.out.println(t5.getName()); t6.start(); System.out.println(t6.getName()); t7.start(); System.out.println(t7.getName()); t8.start(); System.out.println(t8.getName()); t9.start(); System.out.println(t9.getName()); t10.start(); System.out.println(t10.getName()); System.out.println("ddd"); t.start(); t.join();//线程让步 t.mainrun(); } }
我不是很明白调用这两方法后 t.start();t.join();打印出来的结果是:Thread-10 a Thread-9 a Thread-8 a Thread-7 a Thread-6 a Thread-5 a Thread-4 a Thread-3 a Thread-2 a Thread-1 a ddd Thread-0 a Thread-0zuihou0 有人能说明下嘛!
public void run () {
System.out.println(getName()+" a");
}
public void mainrun(){
System.out.println(getName()+"zuihou"+i++);
}
public static void main(String[] args) throws InterruptedException{
Test t = new Test();
Test t1 = new Test();
Test t2 = new Test();
Test t3 = new Test();
Test t4 = new Test();
Test t5 = new Test();
Test t6 = new Test();
Test t7 = new Test();
Test t8 = new Test();
Test t9 = new Test();
Test t10 = new Test();
t1.start();
System.out.println(t1.getName());
t2.start();
System.out.println(t2.getName());
t3.start();
System.out.println(t3.getName());
t4.start();
System.out.println(t4.getName());
t5.start();
System.out.println(t5.getName());
t6.start();
System.out.println(t6.getName());
t7.start();
System.out.println(t7.getName());
t8.start();
System.out.println(t8.getName());
t9.start();
System.out.println(t9.getName());
t10.start();
System.out.println(t10.getName());
System.out.println("ddd");
t.start();
t.join();//线程让步
t.mainrun(); }
}
我的意思是既然有个join()可以等待线程结束,那么有没有管理多线程的类的方法中可以等待所有线程运行完?
Thread[] threads = new Thread[10];
for(int i=0; i<10; i++){
final int index = i;
threads[i] = new Thread(){
public void run(){
try{
Thread.sleep(1000 * index);
}catch(InterruptedException e){ }
System.out.println("Thread " + index);
}
};
threads[i].start();
}
for(int i=0; i<10;i++){
try{
threads[i].join();
}catch(InterruptedException e){
}
}
//10个线程都执行完
System.out.println("done");用join()判断
我不是很明白调用这两方法后 t.start();t.join();打印出来的结果是:Thread-10 a
Thread-9 a
Thread-8 a
Thread-7 a
Thread-6 a
Thread-5 a
Thread-4 a
Thread-3 a
Thread-2 a
Thread-1 a
ddd
Thread-0 a
Thread-0zuihou0
有人能说明下嘛!
if(t1.isAlive)
{
System.out.print("yes");
}