Właśnie wpadł do kodu:Kiedy używać Guava sameThreadExecutor
ExecutorService executorService = MoreExecutors.sameThreadExecutor();
for (int i = 0; i < 10; i++) {
executorService.submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
try {
Do some work here...
return null;
} catch (final Exception e) {
throw e;
} finally {
//
}
}
});
}
Wszelkie różnice między tym i fragmentem kodu poniżej? Jeśli rozumiem to poprawnie, ten samThreadExecutor używa tego samego wątku, który wywołuje submit(), co oznacza, że wszystkie te 10 "zadań" są uruchamiane jeden po drugim w głównym wątku.
for (int i = 0; i < 10; i++) {
try {
Do some work here...
} catch (final Exception e) {
throw e;
} finally {
//
}
}
Dzięki!
To samo. Typowym przypadkiem użycia jest testowanie jednostek, w którym nie ma potrzeby wykonywania złożonych procedur asynchronicznych. –