Tambahkan kode terlebih dahulu
Buat utas baru, kodenya adalah sebagai berikut:
paket com.thread.test; kelas publik mythread memperluas utas {name string privat; public mythread (nama string) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name+"["+i+"]"); } super.run (); }}Kemudian buat kelas tes baru, kodenya adalah sebagai berikut:
Paket com.thread.test;/** 0-50 menjalankan utas utama, 50-100 mengeksekusi utas A, dan utas utama akan terus dieksekusi setelah utas A dieksekusi sepenuhnya*/Public Class ThreadDemo {public static Main (String [] args) {mythread t = new mythread ("a"); t.start (); untuk (int i = 0; i <100; i ++) {if (i> 50) {coba {t.join (); } catch (InterruptedException e) {E.PrintStackTrace (); }} System.out.println ("Thread Utama"+"["+i+"]"); }}}Berikut ini adalah penjelasan tentang metode gabungan di utas di platform Java SE8 API:
Public Final Void Join (Long Millis) melempar InterruptedExceptionwaits di sebagian besar milis jutaan milidetik untuk utas ini mati. Timeout 0 berarti menunggu selamanya. Implementasi ini menggunakan lingkaran ini. Twait Calls dikondisikan pada ini. ISalive. Saat utas mengakhiri metode ini. NotifyAll dipanggil. Disarankan agar aplikasi tidak menggunakan tunggu, memberi tahu, atau memberi tahu semua pada instance thread.parameters: Millis - Waktu untuk menunggu dalam jutaan detik lemparan: ilegalargumentException - jika nilai millis negatif interupsi exception - jika ada utas telah mengganggu utas saat ini. Status terputus dari utas saat ini dibersihkan ketika pengecualian ini dilemparkan.
Tambahkan kode terlebih dahulu
Buat utas baru, kodenya adalah sebagai berikut:
paket com.thread.test; kelas publik mythread memperluas utas {name string privat; public mythread (nama string) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name+"["+i+"]"); } super.run (); }}Kemudian buat kelas tes baru, kodenya adalah sebagai berikut:
Paket com.thread.test;/** 0-50 menjalankan utas utama, 50-100 mengeksekusi utas A, dan utas utama akan terus dieksekusi setelah utas A dieksekusi sepenuhnya*/Public Class ThreadDemo {public static Main (String [] args) {mythread t = new mythread ("a"); t.start (); untuk (int i = 0; i <100; i ++) {if (i> 50) {coba {t.join (); } catch (InterruptedException e) {E.PrintStackTrace (); }} System.out.println ("Thread Utama"+"["+i+"]"); }}}Berikut ini adalah penjelasan tentang metode gabungan di utas di platform Java SE8 API:
Public Final Void Join (Long Millis) melempar InterruptedExceptionwaits di sebagian besar milis jutaan milidetik untuk utas ini mati. Timeout 0 berarti menunggu selamanya. Implementasi ini menggunakan loop ini. Twait Calls dikondisikan pada ini. ISalive. Saat utas mengakhiri metode ini. NotifyAll dipanggil. Disarankan agar aplikasi tidak menggunakan tunggu, memberi tahu, atau memberi tahu semua pada instance thread.parameters: Millis - Waktu untuk menunggu dalam jutaan detik lemparan: ilegalargumentException - jika nilai millis negatif interupsi exception - jika ada utas telah mengganggu utas saat ini. Status terputus dari utas saat ini dibersihkan ketika pengecualian ini dilemparkan.
Pemahaman saya sendiri adalah bahwa ia akan secara paksa memasuki utas menggunakan metode bergabung, dan utas lainnya akan menunggu sampai utas sepenuhnya dieksekusi sebelum masuk.