Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приоритетно приобрести блокировку 
:(
    Опции темы
Alexey91
Дата 28.8.2013, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Здравствуйте!

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

Как это можно сделать?
PM   Вверх
Alexey91
Дата 28.8.2013, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Почему возникла такая необходимость...

существует таблица в базе данных.

Определенная нить (пусть будет нить-загрузчик) периодически проверяет наличие новых записей в таблице.
И если записи появились, то сохраняет записи из таблицы в объект storage. И этот storage
периодически пополняется нитью-загрузчиком. С другой стороны существуют нити-обработчики,
которые забирают себе записи из storage, и осуществляют с ними какие-то действия.

Я думаю, все понимают, что storage - это разделяемый объект. Его видят и нити-обработчики, и 
нить-загрузчик.

Задача в том, чтобы было как можно меньше простоев.
Если нить-загрузчик узнала, что появились новые записи в таблице, то она
не должна долго ожидать того, когда освободится объект storage, чтобы поместить в него новые записи. 

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.