Состояние потока после вызова 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.Transa ctionReaper)
at com.arjuna.ats.internal.arjuna.coordinat or.ReaperThread.run(ReaperThread.java:98)
- locked <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.Transa ctionReaper)
Locked ownable synchronizers:
- None
ПС. Java 1.6 64bit OS: Debian
Все они кроме одного находятся в состоянии 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.Transa
at com.arjuna.ats.internal.arjuna.coordinat
- locked <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.Transa
Locked ownable synchronizers:
- None
ПС. Java 1.6 64bit OS: Debian
