
#pytanie do #programista15k czy w #java w standardowych bibliotekach jest jakaś odmiana ExecutorService z timeoutem per task? Stackoverflow w ogóle nie pomocny, większość pytań ma odpowiedzi nie na temat XD #programowanie
- Najlepsze
- Wszystkie komentarze







https://docs.spring.io/spring-integration/api/org/springframework/integration/util/CallerBlocksPolicy.html
Z zerową kolejką (BlockingQueue) i tym Policy. CompletableFuture wtedy będziesz robił tak, że odpalasz taski (supplyAsync), a potem dajesz orTimeout(). Wtedy masz pewność, że task faktycznie zaczął się wykonywać, inaczej stałby zablokowany na statement z supplyAsync
To policy jest bardzo proste, więc nie musisz importować tej biblioteki, tylko copy-paste
Problem jest taki, że chciałbym mieć pule wątków wielkości X i wykonać Y wątków gdzie Y znacznie większe od X i tutaj zaczyna się problem. Bo wbudowane timeouty w Future / CompletionService w ogóle nie biorą pod uwagę faktu, że wątki mogą czekać w kolejce na wykonanie i timeout liczony jest od submita, a nie od faktycznego startu
Komentarz usunięty przez autora