诸城网站做的好的,附近装修设计公司,苏州网站开发建设,视频分享网站怎么做的一个线程如何知道另一线程已经结束#xff1f;Thread类提供了回答此问题的方法。有两种方法可以判定一个线程是否结束。第一#xff0c;可以在线程中调用isAlive()。这种方法由Thread定义#xff0c;它的通常形式如下#xff1a;final boolean isAlive( )如果所调用线程仍在…一个线程如何知道另一线程已经结束Thread类提供了回答此问题的方法。有两种方法可以判定一个线程是否结束。第一可以在线程中调用isAlive()。这种方法由Thread定义它的通常形式如下final boolean isAlive( )如果所调用线程仍在运行isAlive()方法返回true如果不是则返回false。但isAlive()很少用到等待线程结束的更常用的方法是调用join()描述如下final void join( ) throws InterruptedException该方法等待所调用线程结束。该名字来自于要求线程等待直到指定线程参与的概念。join()的附加形式允许给等待指定线程结束定义一个最大时间。下面是前面例子的改进版本。运用join()以确保主线程最后结束。同样它也演示了isAlive()方法。// Using join() to wait for threads to finish.class NewThread implements Runnable {String name; // name of threadThread t;NewThread(String threadname) {name threadname;t new Thread(this, name);System.out.println(New thread: t);t.start(); // Start the thread}// This is the entry point for thread.public void run() {try {for(int i 5; i 0; i--) {System.out.println(name : i);Thread.sleep(1000);}} catch (InterruptedException e) {System.out.println(name interrupted.);}System.out.println(name exiting.);}}class DemoJoin {public static void main(String args[]) {NewThread ob1 new NewThread(One);NewThread ob2 new NewThread(Two);NewThread ob3 new NewThread(Three);System.out.println(Thread One is alive: ob1.t.isAlive());System.out.println(Thread Two is alive: ob2.t.isAlive());System.out.println(Thread Three is alive: ob3.t.isAlive());// wait for threads to finishtry {System.out.println(Waiting for threads to finish.);ob1.t.join();ob2.t.join();ob3.t.join();} catch (InterruptedException e) {System.out.println(Main thread Interrupted);}System.out.println(Thread One is alive: ob1.t.isAlive());System.out.println(Thread Two is alive: ob2.t.isAlive());System.out.println(Thread Three is alive: ob3.t.isAlive());System.out.println(Main thread exiting.);}}程序输出如下所示New thread: Thread[One,5,main]New thread: Thread[Two,5,main]New thread: Thread[Three,5,main]Thread One is alive: trueThread Two is alive: trueThread Three is alive: trueWaiting for threads to finish.One: 5Two: 5Three: 5One: 4Two: 4Three: 4One: 3Two: 3Three: 3One: 2Two: 2Three: 2One: 1Two: 1Three: 1Two exiting.Three exiting.One exiting.Thread One is alive: falseThread Two is alive: falseThread Three is alive: falseMain thread exiting.如你所见调用join()后返回线程终止执行。