Java'da Aynı Anda Birden Çok Konu Nasıl Çalıştırılır? YürütücüHizmet Yaklaşımı

Yayınlanan: 2021-10-09
Java'da Aynı Anda Birden Çok Konu Nasıl Çalıştırılır? YürütücüHizmet Yaklaşımı

Bu örneğe tekrar bakalım: Java'da herhangi bir HTTP Bitiş Noktasının Ping Durumu nasıl alınır?

Bu örnek için iş parçacığı yürütmesini fark ettiniz mi? Sıralı. What if you have 500 endpoints? Sonuç almak için en az 5 dakika beklemeniz gerektiğine bahse girerim. Ki eminim ki en iyi çözüm değildir.

Şimdi ne olacak? Doğru soru şu olurdu:

  • Aynı anda birden çok iş parçacığı nasıl çalıştırılır?
  • Java'da birden çok iş parçacığı nasıl uygulanır?
  • Java'da farklı konuları nasıl çalıştırırım?
  • Java – Multithreading Programlama Eğitimi nerede?
  • Konu: İşlemeyi hızlandırmak için birden çok iş parçacığı nasıl kullanılır?

ExecutorService Approach sizin cevabınızdır.

Sonlandırmayı yönetmek için yöntemler ve bir veya daha fazla eşzamansız görevin ilerlemesini izlemek için bir Gelecek üretebilecek yöntemler sağlayan bir Yürütücü.

Bir ExecutorService kapatılabilir ve bu da yeni görevleri reddetmesine neden olur. Bir ExecutorService'i kapatmak için iki farklı yöntem sağlanmıştır. shutdown() yöntemi, önceden gönderilen görevlerin sonlandırılmadan önce yürütülmesine izin verirken, shutdownNow() yöntemi, bekleyen görevlerin başlatılmasını engeller ve o anda yürütülmekte olan görevleri durdurmaya çalışır.

Fesih üzerine, bir yürütücünün aktif olarak yürütmekte olduğu hiçbir görevi yoktur, yürütmeyi bekleyen hiçbir görevi yoktur ve hiçbir yeni görev gönderilemez. Kullanılmayan bir ExecutorService, kaynaklarının geri kazanılmasına izin vermek için kapatılmalıdır.

Yöntem gönderme, yürütmeyi iptal etmek ve/veya tamamlanmayı beklemek için kullanılabilecek bir Gelecek oluşturup döndürerek temel yöntem Executor.execute ( java.lang.Runnable ) genişletir. invokeAny ve invokeAll yöntemleri, bir dizi görev yürüterek ve ardından en az birinin veya tümünün tamamlanmasını bekleyerek en yaygın olarak yararlı toplu yürütme biçimlerini gerçekleştirir. (ExecutorCompletionService sınıfı, bu yöntemlerin özelleştirilmiş türevlerini yazmak için kullanılabilir.)

Executors sınıfı, bu pakette sağlanan yürütücü hizmetleri için fabrika yöntemleri sağlar.

  • java – ExecutorService, tüm görevlerin bitmesi nasıl beklenir?
  • Java ExecutorService Kılavuzu
  • Java Thread Pool – ExecutorService açıklaması

Aşağıda, usage of ExecutorService açıklayan basit bir Java Örneği verilmiştir.

Çıktı:

Şimdi sonucu kontrol edin.

Sadece saniyeler içinde olmalı. Umarım bunu faydalı bulursunuz. Bunu birden fazla kez çalıştırmayı deneyin ve tüm iş parçacıkları paralel olarak yürütüldüğünden ve hızlı sonuç alan herkes için farklı sonuçlar görebilirsiniz, sonucun Eclipse konsolunda yayınlandığını göreceksiniz.

Herhangi bir sorgu için bana bildirin.