Почему при вызове Thread.currentThread().getStackTrace() метод getStackTrace() попадает в стек, а currentThread() нет?
Serhii.S
33 уровень
currentThread() и getStackTrace()
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ирина Алымова Java Developer в Nerdysoft
18 сентября 2021, 02:14решение
В стеке первым элементом указана функция getStackTrace(), потом функция, которая ее вызвала, потом функция, которая вызвала эту функцию и т.д. до main. В данном случае функция currentThread() не вызывала(не содержала в своем теле) функцию getStackTrace(), она получала ссылку на объект текущего потока.
+3
Serhii.S
18 сентября 2021, 06:21
А и правда, в стеке вызова текущего метода находятся не все вызванные до него методы, а только методы, которые привели к вызову текущего. Если бы в реализации currentThread() был вызов какого либо метода, то только его стек трейс и содержал бы currentThread(). Благодарю за ответ.
0