threadStatus имеет значение «225», что это значит?

1

Java Thread имеет свойство с именем threadStatus. Во время моего отладки я обнаружил, что он имеет значение 225, но не может найти никаких объяснений в документе API Java. Так кто может мне помочь?

Я имею в виду этого частного участника класса java.lang.Thread
private int threadStatus = 0;

  • 2
    И документация по API ...
  • 0
    Это частный член?
Показать ещё 1 комментарий
Теги:
multithreading

2 ответа

0
Лучший ответ

Я думаю, что вы видели значение private volatile int threadStatus = 0; который является volatile переменной Thread класса, который инициализируется zero, чтобы указать, что Thread не начали средства в NEW state.But при вызове start() метод Thread значения chages к чему - то еще сказать, 2, который остается, как это после начала Thread чтобы убедиться, что start не будет вызван снова.

Так например, когда вы вызываете start дважды в любом Thread он проверяет эту переменную на !=0 если ее !=0 чем бросает IllegalThreadStateException.

Значение этой переменной, используемое во многих местах для проверки Thread, было начато.

Обратите внимание, что изменение значения происходит внутри.

Я получил сообщение от старшего участника сообщества Eclipse

Число преобразуется с помощью собственных методов в перечисление состояния, доступное в java api.

  • 1
    спасибо, я отлаживаю свой код как удаленное Java-приложение и нахожу это значение, так странно ...
2

Там, в java.lang.Thread, также есть Map threadStateNames и еще один, threadStateMap, которые отображают целочисленное значение для имен и объектов Thread.State: проконсультируйтесь с ними. Поскольку эти значения исходят из внутренних компонентов вашей локальной JVM, нет общей документации о числовом значении, которое зависит от вашей операционной системы.

  • 0
    Я использую JDK1.6 HotSpot 64bit и не могу найти этих участников, и знаете ли вы, каковы отношения между Thread.State и этим закрытым членом threadStatus ?
  • 0
    Боюсь, вам придется покопаться в источниках вашей версии JDK, чтобы найти ответ. Я подозреваю, что это число является результатом комбинации or-ed нескольких значений enum (int), каждое из которых указывает «фасет» состояния. Но это абсолютно зависит от ОС.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню