Heim  >  Artikel  >  Java  >  Thread – Einführung in die Methode „join()“.

Thread – Einführung in die Methode „join()“.

零下一度
零下一度Original
2017-06-29 14:53:071617Durchsuche

1. Join()-Methode, offizielle Beschreibung wartet darauf, dass dieser Thread stirbt

Quellcode:
//Keine Parameter, join(0) wird standardmäßig aufgerufen
public final void join() throws InterruptedException {
join(0) ;
}
//Übergeben Sie die beiden Zeiten Millis Millisekunden + Nanos Nanosekunden, was bedeutet, warten Sie auf Millis + Nanos und rufen Sie schließlich Methode 3 auf
public final synchronisiert void join(long millis, int nanos)
wirft InterruptedException {
if (millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 || (nanos != 0 && millis = = 0)) {
millis++;
}
join(millis);
}
//Methode 3: Übergeben Sie die Wartezeit in Millisekunden und rufen Sie die zugrunde liegende Wartezeit (Zeit) des Objekts auf
public final synchronisiert void join(long millis )
wirft InterruptedException {
long base = System.currentTimeMillis();
long now = 0;
if ( millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (millis == 0) {
while (isAlive()) {
wait(0);//Zeigt ewiges Warten an und weist den Thread an, zu sterben
}
} else {
while ( isAlive()) {
long delay = millis - now;
if (delay <= 0) {
break ;
}
wait(delay);
now = System.currentTimeMillis() - base;
}
}
}
2. In der Anwendung müssen beispielsweise mehrere Threads ausgeführt werden eine bestimmte Reihenfolge
public class ThreadJoin erweitert Thread {
public void run(){
try {
this.sleep(500);
System.out.println("["+new Date()+" ]"+this.getName());
} Catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
int length = 5;
Thread[] threads = new Thread[length];
for(int i=0; i
threads[i] = new ThreadJoin();
threads[i].start() ;
threads[i].join();//join wird aufgerufen, nachdem jeder Thread gestartet wurde
}
long endTime=System.currentTimeMillis();
}
}
/*
Ausgabe:
[So 11. Juni 13:40:42 CST 2017]Thread-0
[So 11. Juni 13:40:43 CST 2017]Thread-1
[So 11. Juni 13:40:43 CST 2017]Thread-2
[So, 11. Juni 13:40:44 CST 2017]Thread-3
[So, 11. Juni 13:40:44 CST 2017]Thread-4
Wenn Sie „join()“ auskommentieren
, kann das Ergebnis jedes Mal anders sein
[So Jun 11 13:51:09 CST 2017]Thread-2
[So 11. Juni 13:51:09 CST 2017]Thread-4
[So 11. Juni 13:51:09 CST 2017 ]Thread-1
[So 11. Juni 13:51:09 CST 2017]Thread-3
[So 11. Juni 13:51:09 CST 2017]Thread-0
*/
Erledigen Sie die Dinge nicht voreilig, sondern gehen Sie Schritt für Schritt vor 🎜>

Das obige ist der detaillierte Inhalt vonThread – Einführung in die Methode „join()“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn