Image

Imagebalmaster wrote in Imageru_java

Состояние потока после вызова Wait(Timeout)

Есть несколько потоков завязанных посредством synchronized на один и тот же объект 0x00007f6ccdc374c0
Все они кроме одного находятся в состоянии WAITING на получении блокировки на 0x00007f6ccdc374c0

Оставшийся поток, работает аналогично таймеру: делает полезную работу, затем выполняет Wait(timeout ) на 0x00007f6ccdc374c0
и так далее периодически.

callstack для данного потока
ВОПРОС: Почему поток находится в состоянии BLOCKED вместо WAITING?

"Thread-10" BLOCKED
"Thread-10" daemon prio=10 tid=0x0000000043c41800 nid=0x1aec waiting for monitor entry [0x00007f6cab4f3000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:98)
- locked <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)

Locked ownable synchronizers:
- None

ПС. Java 1.6 64bit OS: Debian