🧵 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