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

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • waterfairy17

    waterfairy17

    9 Aralık 2007