Thread.join() metodu necə işləyir?
sobes.tech Süni İntellekt
AI-dan cavab
Thread.join() metodu cari icra olunan axını join çağırılan axının tamamlanmasını gözləməyə məcbur edir.
otherThread.join() çağırıldıqda, cari axın (məsələn, main axını) bloklanır və otherThread öz icrasını tamamlayana qədər (onun run() metodu geri dönənə qədər) gözləyir.
Zaman aşımını millisekund və ya millisekund və nanosekund şəklində göstərə bilərsiniz:
otherThread.join(long millis): ən çoxmillismillisekund gözləyir.otherThread.join(long millis, int nanos): ən çoxmillismillisekund vənanosnanosekund gözləyir.
Əgər göstərilən zaman aşımı keçərsə və axın hələ tamamlanmayıbsa, cari axın açılır və davam edir.
Thread.join() InterruptedException atə bilər, əgər cari axın gözləmə zamanı kəsilərsə. Bu halda, gözləmə dayandırılır.
Nümunə:
// Yeni axın yaradıb işə salırıq
Thread worker = new Thread(() -> {
try {
// İşin simulyasiyası
Thread.sleep(2000);
System.out.println("İşçi axını tamamlandı.");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
worker.start();
try {
// Əsas axın, işçi axınının tamamlanmasını gözləyir
worker.join();
System.out.println("Əsas axın, işçi tamamlandıqdan sonra davam edir.");
} catch (InterruptedException e) {
e.printStackTrace();
}
Əhəmiyyətli: join() bir axının digərinin tamamlanması ilə sinxronlaşdırır. Bu, müəyyən bir tapşırığın tamamlanmasını təmin etmək üçün faydalıdır.