"Halo, Amigo! Saya melihat Anda membuat langkah besar dalam belajar tentang utas."
"Lagipula itu tidak terlalu sulit."
Itu hebat! Hari ini Anda memiliki pelajaran yang mudah, dan topiknya adalah metode bergabung .
Bayangkan situasi berikut: utas utama telah membuat utas anak untuk melakukan beberapa tugas. Waktu berlalu, dan sekarang utas utama membutuhkan hasil pekerjaan yang dilakukan oleh utas anak. Tapi utas anak belum menyelesaikan pekerjaannya. Apa yang harus dilakukan utas utama?
Pertanyaan bagus. Apa yang harus dilakukan utas utama?
"Inilah gunanya metode join . Ini memungkinkan kita untuk membuat satu utas menunggu sementara utas lainnya menyelesaikan pekerjaannya:"
Kode | Keterangan |
---|---|
|
Kelas yang mengimplementasikan antarmuka Runnable. |
|
Utas utama membuat utas anak - utas1 .
Kemudian dimulai dengan memanggil thread1 .start(); Dan kemudian menunggu sampai selesai – thread1.join(); |
Satu utas dapat memanggil metode bergabung pada objek Utas utas kedua. Akibatnya, utas pertama (yang disebut metode) berhenti bekerja hingga utas kedua (yang metode gabungan objeknya dipanggil) selesai.
Kita perlu membedakan antara dua hal di sini: kita memiliki utas (lingkungan eksekusi terpisah) dan kita memiliki objek Utas.
"Itu dia?"
"Ya."
"Tapi kenapa kita harus membuat thread lalu langsung menunggu sampai selesai?"
"Mungkin tidak perlu segera. Bisa jadi setelah beberapa waktu berlalu. Setelah memulai utas anak pertamanya, utas utama dapat menetapkan lebih banyak tugas ke utas lainnya (dengan membuatnya dan memanggil metode mulai ). Lalu ketika itu tidak ada pekerjaan yang tersisa, perlu memproses hasil dari utas anak pertama. Setiap kali Anda perlu menunggu utas lainnya selesai bekerja, Anda perlu memanggil metode bergabung ."
"Mengerti."
GO TO FULL VERSION