powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос про потоки
11 сообщений из 11, страница 1 из 1
Вопрос про потоки
    #38861557
Simple_russian_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема такая. Есть 2 потока (Thread) A и B. Есть некий объект X. Можно ли из потока B узнать что поток A в данный момент блокирует объект X synchronized блоком. При этом никак для этих целей не изменяя A и X (т. е. без всяких флажков-полей, даны только ссылки на объекты). Походу в Java нет такого способа?
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861561
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_menПоходу в Java нет такого способа?
Скорее всего нет... А getState() не предлагать?
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861576
Simple_russian_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
getState - не даёт информации какой объект блокируется потоком ((

Было бы офигенно найти аналог holdsLock показывающий информацию не тока по текущему потоку
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861592
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_men,

ReentrantLock подойдёт с tryLock?
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861655
Simple_russian_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ReentrantLock - прикольно, но тут опять же не получится посмотреть что именно за объект лочит тред. Плюс, к сожалению поток A пишу не я, а там используется именно synchronized. Видимо это всё-таки невозможно, но попытаться стоило)
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861980
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_men,

Во-первых: а зачем?
Во-вторых - дамп потоков. По дампу видно какой поток находится в конкретном методе, а так же видно если потом заблокирован на synchronized. По-моему там какая-то инфа по объету тоже пишется.
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861981
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java.lang.management.ThreadMXBean
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38861985
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_men,

Пытаешься отловить багу в библиотеке без исходников?
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38862415
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_menReentrantLock - прикольно, но тут опять же не получится посмотреть что именно за объект лочит тред. Плюс, к сожалению поток A пишу не я, а там используется именно synchronized. Видимо это всё-таки невозможно, но попытаться стоило)1) Для проверки, заблокирован монитор объекта или нет, можно использовать Unsafe.tryMonitorEnter().
2) Если надо посмотреть, кто занял монитор, то ThreadMXBean.dumpAllThread(true, false)[i].getLockedMonitors(), и там по identity hash code смотрите. Только помните, что не все JVM поддерживают это (ThreadMXBean.isObjectMonitorUsageSupported).
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38977465
Simple_russian_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому интересно, проблему решили переделав класс A (инфа о блокировках через поля класса). Про ThreadMXBean не слышал, будет ещё подобная проблема, попробую.
...
Рейтинг: 0 / 0
Вопрос про потоки
    #38977479
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Simple_russian_menПри этом никак для этих целей не изменяя A и X
Simple_russian_menЕсли кому интересно, проблему решили переделав класс A
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос про потоки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]