Короче говоря : номер не обязательно должен быть номером регистра, это может быть идентификатор из ObjectReferenceImpl, который является реализацией интерфейса ObjectReference из интерфейса отладки Java ( JDI ).
В длине : Из анализа базы кода сообщества Idea было установлено, что ThreadDescriptorImpl.java
( ThreadDescriptorImpl ) является классом, отвечающим за предоставление описания потокабудет отображаться в окне отладки (пожалуйста, обратитесь к изображению выше с вопросом).Идентификатор называется thread.uniqueID()
.Поток здесь имеет тип ThreadReferenceProxyImpl
, который расширяет ObjectReferenceProxyImpl
, где реализован метод uniqueID .Этот метод, в свою очередь, возвращает уникальный идентификатор объекта типа ObjectReference
.После беглого поиска определение ObjectReference
с удовлетворяющими критериями не было найдено в кодовой базе Idea.Позже было обнаружено, что он скрыт в определении интерфейса JDI .Из jar реализации JDI, найденной в настройке Idea, было обнаружено, что ObjectReferenceImpl
обеспечивает окончательную реализацию метода uniqueID
.Фрагмент кода приведен ниже -
private long myID;
private static synchronized long nextID()
{
return nextID++;
}
ObjectReferenceImpl(VirtualMachine aVm, Oop oRef)
{
super(aVm);
this.saObject = oRef;
this.myID = nextID();
}
public long uniqueID()
{
return this.myID;
}
Однако при этом и при ответе на вопрос использовались такие слова, как «вероятно» и «может быть», поскольку ссылки на реализации ObjectReference
не были найдены сразув исходном коде издания сообщества идей.И выводы были сделаны из реализаций jar.Если в будущем кто-то, взглянув на этот вопрос и ответ, должен будет предоставить прямые ссылки, ответ можно изменить, чтобы отразить определенность.