Сначала добавьте код
Создайте новую ветку, код заключается в следующем:
пакет com.thread.test; public class mythread extends thread {private String name; public mythread (string name) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name+"["+i+"]"); } super.run (); }}Затем создайте новый тестовый класс, код выглядит следующим образом:
пакет com.thread.test;/** 0-50 Выполняет основной поток, 50-100 выполняет поток A, и основной поток будет продолжать выполняться после полного выполнения потока*/public class threaddemo {public static void main (string [] args) {mythread t = new Mythread ("a"); t.start (); for (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (прерванное искусство e) {e.printstacktrace (); }} System.out.println ("Основной поток"+"["+i+"]"); }}}Ниже приведено объяснение метода соединения в потоке на платформе Java SE8 API:
Общественное окончательное void join (Long Millis) бросает прерванные эктриэкцепции в большинстве миллионов миллионов миллионов за эту ветку, чтобы умереть. Тайм -аут 0 означает ждать вечно. В этой реализации используется цикл этого. Ввидайте вызовы, обусловленные этим. В качестве потока заканчивается метод this.notifyall. Рекомендуется, чтобы приложения не использовали ожидание, уведомление или уведомление о экземплярах потоков. Параметры: Миллис - время ожидания за миллион секунд. Выбросы: allodalargumentException - если значение миллиса является отрицательным прерыванием, - если какой -либо поток прерывал текущий поток. Прерывистый статус текущего потока очищается при брошении на это исключение.
Сначала добавьте код
Создайте новую ветку, код заключается в следующем:
пакет com.thread.test; public class mythread extends thread {private String name; public mythread (string name) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name+"["+i+"]"); } super.run (); }}Затем создайте новый тестовый класс, код выглядит следующим образом:
пакет com.thread.test;/** 0-50 Выполняет основной поток, 50-100 выполняет поток A, и основной поток будет продолжать выполняться после полного выполнения потока*/public class threaddemo {public static void main (string [] args) {mythread t = new Mythread ("a"); t.start (); for (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (прерванное искусство e) {e.printstacktrace (); }} System.out.println ("Основной поток"+"["+i+"]"); }}}Ниже приведено объяснение метода соединения в потоке на платформе Java SE8 API:
Общественное окончательное void join (Long Millis) бросает прерванные эктриэкцепции в большинстве миллионов миллионов миллионов за эту ветку, чтобы умереть. Тайм -аут 0 означает ждать вечно. В этой реализации используется цикл этого. Ввидайте вызовы, обусловленные этим. В качестве потока заканчивается метод this.notifyall. Рекомендуется, чтобы приложения не использовали ожидание, уведомление или уведомление о экземплярах потоков. Параметры: Миллис - время ожидания за миллион секунд. Выбросы: allodalargumentException - если значение миллиса является отрицательным прерыванием, - если какой -либо поток прерывал текущий поток. Прерывистый статус текущего потока очищается при брошении на это исключение.
Мое собственное понимание состоит в том, что он насильственно вводит поток, используя метод соединения, а другие потоки будут ждать, пока поток не будет полностью выполнен до входа.