powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Потоки и дедлок
3 сообщений из 3, страница 1 из 1
Потоки и дедлок
    #33869394
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Вопрос не сколько конкретный, сколько философский. Интересует в первую очередь мнение в принципе, так сказать, поскольку для конкретных рецептов информации недостаточно.

Условия задачи:
Имеется свинг-приложение (фрейм с меню баром) которое служит каркасом для группы диалогов. Диалоги вызываются из меню и отображаются на панели каркасного приложения.
Все диалоги реализованы следующим образром: имеется управляющий класс, который наследует интерфейс известный каркасу. Каркасное приложение дергает методы (show, hide и.т.д.) и такми образом говорит подчиненному диалогу, что делать. Соответственно, подчиненный диалог (через метод управляющего класса) предоставляет приложению JPanel, которую он хотел бы показывать пользователю.

Так вот. Для этого самого каркасного приложения разработан специальный диалог. Главная его особенность заключается в том, что он автоматически обновляется - т.е. ползет в БД за данными и потом перерисовывает элементы. Делается это часто - раз в 2 секунды.

Возникает следующая ситуация - при нажатии на меню каркасного приложения - иногда приложение виснет. Меню не открывается. Т.е. навел на меню - нажал - все, приехали.

Напомню, что взаимодействие между приложением и диалогом происходит исключительно через специальный класс, а отображается приложением специальная паналь, которую ему дает диалог.

Внимание, вопрос:

Господа, на что обратить внимание при поиске причины данной баги? Какие общие советы для подобных конструкций вы могли бы дать?

Детали: Каркасное приложение не мое, но исходники доступны. При желании там тоже можно править, но, конечно, не хочется. Диалог - мой.

История. Подобные висы я получал на своем диалоге, когда разрабатывал вызов окон (JDialog) - как реакцию на действия пользователя. Т.е. по панели щелкает пользователь а ему попап что-то там вылезает. Но подобные висы я благополучно обходил - поскольку это внутренние проблемы диалога. Здесь же (с щелчком по меню) - уже два участника и с какой стороны подходить к задаче пока не понял.

Спасибо.
...
Рейтинг: 0 / 0
Потоки и дедлок
    #33872495
justMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выложи серцы чтоль
...
Рейтинг: 0 / 0
Потоки и дедлок
    #33914972
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ на задачу был найден.
Проблема была в том, что приложение в процессе обновления объектов на экране сильно модифицировала отображаемые объекты, в том числе добавляло/удаляло MouseListener.
Как оказалось, этого ыбло достаточно для дедлока.
Решение заключалось в том, чтобы добавлять слушатель только единожды, ессно модифицировав его так, чтобы чтобы в нудный момент он не срабатывал.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Потоки и дедлок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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