SORU
9 AĞUSTOS 2009, Pazar


Nasıl bütün konuları tamamlamak, ExecutorService kullanarak beklemek?

Bir anda görevleri miktar 4 yürütmek için böyle bir şeye ihtiyacım var:

ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
    taskExecutor.execute(new MyTask());
}
//...wait for completion somehow

Nasıl hepsi tamamlandıktan sonra bildirim alabilir miyim? Şimdi hatırlamıyorum hakkında bir şey daha iyi ayar, bazı küresel görev sayacı ve ma sonunda her görev, monitör, sonsuz döngü bu karşı olmak 0; ya da bir listenin Vadeli ve sonsuz döngü monitör isDone hepsi için. Kısır döngüler işin içine daha iyi çözümler nelerdir?

Teşekkürler.

CEVAP
9 AĞUSTOS 2009, Pazar


Temelde ExecutorService shutdown() awaitTermination() sonra Ara:

ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
  taskExecutor.execute(new MyTask());
}
taskExecutor.shutdown();
try {
  taskExecutor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
} catch (InterruptedException e) {
  ...
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • BioHunta

    BioHunta

    28 Mayıs 2006
  • thetrollska

    thetrollska

    2 EKİM 2009