İçeriğe geç

Çalıştır ve Unut Görevi (ARCH4021)

Anahtar java.async.ignored-future · Önem warning · Kategori async

Bir CompletableFuture veya görev, beklenmeden, atanmadan ya da döndürülmeden ifade olarak üretildiğinde istisnalar kaybolur ve çalışma sırası belirsiz hale gelir. Sonuç asla gözlemlenmez.

void process(List<Order> orders) {
for (Order o : orders) {
CompletableFuture.runAsync(() -> save(o)); // sonuç yok sayıldı
}
}
void process(List<Order> orders) {
List<CompletableFuture<Void>> futures = new ArrayList<>();
for (Order o : orders) {
futures.add(CompletableFuture.runAsync(() -> save(o)));
}
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
}

Üretilen future’ı bir değişkene atayıp join()/get() ile bekleyin veya çağırana döndürün.