Код, который вы выполняете в потоке, должен быть вставлен с кодом, чтобы сделать обратный вызов, состояние которого изменяется. Вы можете сделать это, изменив код, как предлагает @ 宏杰 李, или введя код с помощью Instrumentation
, однако опрос потоков, вероятно, будет самым простым.
ПРИМЕЧАНИЕ. Состояние потока говорит только о желаемом состоянии с точки зрения JVM. Это не показывает вам
- заблокирован ли он при операции ввода-вывода?
- было ли это переключено в контекст
- было ли оно прервано ОС или BIOS
- остановлен ли он для ГХ или замены кода
- ожидает ли он блокировки статического блока инициализации. например если он заблокировал ожидание инициализации класса, он говорит, что это RUNNING.
Кстати, даже ОС опрашивает процессоры, чтобы увидеть, что они делают, обычно 100 раз в секунду.