У меня есть что-то похожее на это:
private static final Logger log = Logger.getLogger(thisClass.class);
private static final ExecutorService EXECUTOR = Executors.newFixedThreadPool(1);
...
...
public void method1() {
Callable<Integer> callable = () -> {
Timer timer = new Timer();
try {
Integer i = someMethod();
log.info("got " + i + " in " + timer.getElapsedTime());
} catch (Exception e) {
log.info("exception thrown after " + timer.getElapsedTime());
throw e;
}
return i;
};
method2(callable);
log.info("method1 called method2");
}
public static void method2(Callable<Integer> callable) {
Future<Integer> future = EXECUTOR.submit(task);
future.get();
}
По какой-то причине, когда я использую maven для запуска моего приложения, где method1 вызывается 200 раз, я вижу запись в журнале за пределами Callable ("method1 звонил method2") 200 раз, но я вижу только ~ 100 записей, зарегистрированных для одной внутри Callable ("получил я через t секунд")
Что я делаю не так?