💻
Kolay
Thread Pool Simülasyonu
100 puan
·
Java
Bu ödevde basit bir thread pool mekanizması simüle edeceksiniz. Worker thread'ler ve bir görev kuyruğu ile temel TaskExecutor mantığını pure Java ile uygulayacaksınız.
📋 Talimatlar
Bir SimpleTaskExecutor sınıfı ve Main sınıfı oluşturun.
SimpleTaskExecutor sınıfı:
- Constructor:
SimpleTaskExecutor(int poolSize)— worker thread sayısı void submit(String taskName, int durationMs)— görevi kuyruğa eklervoid shutdown()— tüm görevler tamamlanana kadar bekler ve thread'leri durdurur- Worker thread'ler sürekli kuyruktan görev alıp çalıştırır
- Her görev başladığında:
"[ThreadAdı] Started: görevAdı"yazdırır - Her görev tamamlandığında:
"[ThreadAdı] Completed: görevAdı"yazdırır
Main sınıfı:
İlk satırda pool boyutu (P) ve görev sayısı (N) okunur. Sonraki N satırda görevAdı süreMs formatında görevler gelir.
Tüm görevleri submit edin, sonra shutdown çağırın.
Not: Thread isimleri "Worker-0", "Worker-1", ... formatında olmalıdır. LinkedBlockingQueue kullanın.
🧪 Örnek Test Senaryoları
Tek worker, iki görev sırayla çalışır
Girdi
1 2 task1 100 task2 100
Beklenen Çıktı
[Worker-0] Started: task1 [Worker-0] Completed: task1 [Worker-0] Started: task2 [Worker-0] Completed: task2
İki worker, iki görev paralel çalışır
Girdi
2 2 task1 50 task2 50
Beklenen Çıktı
[Worker-0] Started: task1 [Worker-1] Started: task2 [Worker-0] Completed: task1 [Worker-1] Completed: task2
💡 İpuçları
İpucu 1: LinkedBlockingQueue.poll(timeout, unit) kullanarak worker thread'lerin shutdown sinyalini kontrol edebilmesini sağlayın.
İpucu 2: volatile boolean running flag ile worker loop'u kontrol edin.
İpucu 3: shutdown() metodunda running=false yapın ve tüm worker thread'lere join() ile bekleyin.
☕
Main.java
✓ Çözüm yüklendi
puan
Testleri çalıştırmak için kodunuzu gönderin
✅ Tüm testler geçti! Tebrikler!
Beklenen:
Sonuç:
Ln 1, Col 1
·
JAVA
·
UTF-8
Wandbox