Links
🧵

Thread Pool (Executors) Kavramı

Java, Kotlin ThreadPoolExecuter, Executors kavramları ve birden fazla thread ile işlerin yönetimi multithreding

👀 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