Я пытаюсь отслеживать, чтобы получить идентификатор родительского потока каждого нового потока, созданного в программе с использованием AspectJ. Так как новый поток начинает выполнение с помощью метода Start(), я думал, что следующий метод должен работать:Как отслеживать идентификатор родительского потока Java с помощью aspectj?
aspect getParentThread {
pointcut threadStarting(): call(public void start());
Object around(): threadStarting() {
long parentThread = Thread.currentThread().getId();
Object ret = proceed();
long newThread = Thread.currentThread().getId();
if (parentThread != newThread) {
/*Store parentThread id in data structure */
}
return ret;
}
}
Но это просто не работает. Хотя совет выполняется, даже после продолжения() завершается только один идентификатор потока. Так что я здесь не так?
Спасибо большое! Вы правы - легко получить его из объекта Thread (вместо использования текущего потока). – Arani