У меня есть следующий код:
@RequestMapping(method = RequestMethod.GET, path = "/execute")
public @ResponseBody
String execute(@RequestParam("name") String input) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
try {
// Do something...
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
});
return "lambda call";
}
Я хочу использовать аспектJ, чтобы отследить выполнение лямбда-функции и определить идентификатор потока, который ее сгенерировал - потока, в котором выполняется моя функция «выполнить» Я знаю, как перехватить лямбда-функцию -
execution(void lambda$*(..)
Но уже слишком поздно для меня идентифицировать идентификатор потока, который создал этот поток (тот, который вызвал "execute"), потому что лямбда работает в новый поток. Как я могу получить «родительский» идентификатор потока / «выполнить» идентификатор потока?