Ho appena incontrato un codice come questo:Quando usare 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 {
//
}
}
});
}
L'eventuale differenza tra questo e il frammento di codice di seguito? Se ho capito bene, sameThreadExecutor utilizza lo stesso thread che chiama submit(), il che significa che tutti questi 10 "lavori" vengono eseguiti uno ad uno sul thread principale.
for (int i = 0; i < 10; i++) {
try {
Do some work here...
} catch (final Exception e) {
throw e;
} finally {
//
}
}
Grazie!
È lo stesso. Un caso d'uso comune è classi di test di unità in cui non si desidera che la complessità gestisca esecuzioni asincrone. –