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

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011