CompletableFuture czy nowy wątek?

0

Dzień dobry, mam dylemat, potrzebuję wykonać dość sporą operację (podbicie w SOAP pewnej aplikacji, wyciągnięcie danych i zapisanie je w bazie) w tle, wykonać ją za pomocą CompletableFuture czy stworzyć nowy wątek do tego celu?

0

To zależy. Jaką masz architekturę, co to za aplikacja i co w zasadzie robisz. I czemu w ogóle w tle?
Ogólnie asyncio / completableFuture daje więcej możliwośc (np. zrobienie przetwarzania non - blocking), ale pytanie czy tego potrzebujesz.

3

To jest ortogonalna kwestia. Można użyć Completable Future w dedykowanym ForkJoinPoolu. Zresztą zalecałbym tak zrobić, jeśli w ogóle, bo inaczej zapychasz sobie domyślny pool, który ma tylko kilka wątków (ilość cpu-1) i obsługuje wszystkie inne completable future oraz np. parallel streamy. Łatwo sobie tym zrobić krzywdę i coś deadlockować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1