Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 3.21 KB

thread-pool-executors-kavrami.md

File metadata and controls

38 lines (28 loc) · 3.21 KB
description
Java, Kotlin ThreadPoolExecuter, Executors kavramları ve birden fazla thread ile işlerin yönetimi multithreding

🧵 Thread Pool (Executors) Kavramı

👀 Thread Pool Nasıl Çalışır

  • 🚄 Yapılacak işler Task Queue içerisinde sıraya alınır
  • 🦄 Her iş, tek tek oluşturulan Thread Pool üzerindeki boş bulunan thread üzerinde tamamlanır
  • 💦 Tamamlanan işlerden sonra thread serbest bırakılır, Task Queue üzerinden yeni iş alınır

⭐ Thread Pool Türleri

💎 Tür 📝 Açıklama 🤔 Ne zaman tercih edilmeli
⚡ Fixed Sabit sayıda thread ile havuz oluşturulur, boşta thread yoksa işler bekletilir Genellikle tercih edilen en iyi durumdur
🤹‍♂️ Cached Lazım oldukça thread oluşturulur, Uzun süreli işlemlerde kullanılmaz, sistemin kaldıramayacağı kadar thread oluşturulabilir
🕐 Scheduled Belirli aralıklarla işleri sırayla yapan thread yapısı Periyodik olarak yapılacak işler
🦄 Single Tüm işler için tek bir thread yapısı oluşturulur. Tek bir iş için tercih edilir
🧛‍♂️ Work Stealing İş için gerekli sayıda thread oluşturur Çoklu işlem gücü olan makinelerde, paralelizm için kullanılır

👨‍💼 Executor Yönetimi

💠 Metot 📝 Açıklama
shutdownNow() Executor'u direkt olarak sonlandırır, verilen görevleri çalıştırmaz, olan görevler tamamlanır ama metotlar tamamlanmaz
isTerminated() Kapatma sinyali aldığında ve executor işini bitirdiği zaman true verir
isShutdown() Kapatma sinyali aldığında true verir
awaitTermination(long timeout,TimeUnitunit) Thread'i executor görevini tamamlayıncaya kadar yada verilen süre kadar bloklar

🔗 Faydalı Kaynaklar

{% embed url="https://howtodoinjava.com/java/multi-threading/java-thread-pool-executor-example/" %}