İki Java iş parçacığını işlemek için bir CountDownLatch
kullanıyorum. aşağıdaki gibi Benim sınıf yapısı şöyledir:Java CountDownLatch, mandalın geri sayımını döndürürken thread.run() öğesinin bir istisna aldığında zaman aşımı değerini bekler
MainClass.java
ThreadOne.java
ThreadTwo.java
MainClass:
CountDownLatch latch = new CountDownLatch(2);
Thread thread = new Thread(new ThreadOne(latch));
thread.start();
Thread thread1 = new Thread(new ThreadTwo(latch));
thread1.start();
latch.await(20, TimeUnit.SECONDS);
Ana sınıfı bekler diğer iki konu işlerini tamamlayana kadar. İşlerini tamamladıkları anda, zaman aşımı değerine (20 saniye) kadar beklemezler. Benim sorunum, herhangi bir iş parçacığı yok veya bozuk olursa CountDownLatch
zaman aşımı değeri için bekler. Kesilen ipliği görmezden gelmenin ve 20 saniye beklemeden ilerlemenin bir yolu var mı?
Sizin Threads'larınızın yok edilmesi veya bozulmasıyla ne demek istiyorsunuz? İstisna mı atıyorsun? – Alexander
"latch.countDown()" çağrısını iş parçacığı kodunuzda bir "nihayet" bloğuna taşıyın, böylece ne olursa olsun yürütülür – zapl