Есть несколько потоков завязанных посредством synchronized на один и тот же объект 0x00007f6ccdc374c0
Все они кроме одного находятся в состоянии WAITING на получении блокировки на 0x00007f6ccdc374c0
Оставшийся поток, работает аналогично таймеру: делает полезную работу, затем выполняет Wait(timeout ) на 0x00007f6ccdc374c0
и так далее периодически.
(
Read more... )
- obj.unlock() -- снятие блокировки;
- obj.await() -- ожидание извещения, поток находится в состоянии WAITING;
- obj.lock() -- повторное взятие блокировки, поток находится в состоянии BLOCKED;
Таким образом, в процесс вызова метода wait могут наблюдаться оба указанных состояния.Reply
смущает то, что по callstack все потоки ожидают получения блокировки на 0x00007f6ccdc374c0, и ни один из потоков не владеет монитором и ни для одного потока блокировка на 0x00007f6ccdc374c0 не взята.
есть идеи почему так может быть?
пс. callstack я смотрел внимательно.
если интересно могу привести полный листинг
Reply
2. а че - давайте полный листинг с native threads
3. а че в jconsole показывают?
Reply
http://ifolder.ru/14043242
Reply
Reply
Leave a comment