java 中Thread.join()的使用方法
java中Thread.join()的使用方法
如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才从thread.join()返回。
importjava.util.concurrent.TimeUnit; /** *6-13 */ publicclassJoin{ publicstaticvoidmain(String[]args)throwsException{ Threadprevious=Thread.currentThread(); for(inti=0;i<10;i++){ //每个线程拥有前一个线程的引用,需要等待前一个线程终止,才能从等待中返回 Threadthread=newThread(newDomino(previous),String.valueOf(i)); thread.start(); previous=thread; } TimeUnit.SECONDS.sleep(5); System.out.println(Thread.currentThread().getName()+"terminate."); } staticclassDominoimplementsRunnable{ privateThreadthread; publicDomino(Threadthread){ this.thread=thread; } publicvoidrun(){ try{ thread.join(); }catch(InterruptedExceptione){ } System.out.println(Thread.currentThread().getName()+"terminate."); } } }
执行结果:
mainterminate. 0terminate. 1terminate. 2terminate. 3terminate. 4terminate. 5terminate. 6terminate. 7terminate. 8terminate. 9terminate.