Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Групповой или "общинный" mutex в Windows / 5 сообщений из 5, страница 1 из 1
16.08.2015, 02:53
    #39030177
nitro789654123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Групповой или "общинный" mutex в Windows
Возможно ли сделать так, например при такой схеме:

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

Может быть решение на поверхности, но я его не знаю)

То что "читателей" несколько с этим тоже ничего не поделаешь)
...
Рейтинг: 0 / 0
16.08.2015, 05:05
    #39030181
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Групповой или "общинный" mutex в Windows
Сделать возможно. Никаких препятствий нет.
Но вместо простых мютексов лучше использовать немножко другой подход который обычно называют shared mutex или RW-lock. Начни читать отсюда например: https://en.wikipedia.org/wiki/Readers–writer_lock
...
Рейтинг: 0 / 0
16.08.2015, 10:13
    #39030200
nitro789654123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Групповой или "общинный" mutex в Windows
White Owl, спасибо, буду разбираться
...
Рейтинг: 0 / 0
16.08.2015, 20:15
    #39030386
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Групповой или "общинный" mutex в Windows
nitro789654123может возникнуть ситуация такая, что писатель вообще перестанет получать доступ ресурсам
Не может. Если читателю нечего читать, то освобождаться будет мгновенно.

В виндовсе лучше использовать event, освобождение которого запустит всех читателей.
...
Рейтинг: 0 / 0
16.08.2015, 22:55
    #39030419
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Групповой или "общинный" mutex в Windows
Dima Tnitro789654123может возникнуть ситуация такая, что писатель вообще перестанет получать доступ ресурсам
Не может. Если читателю нечего читать, то освобождаться будет мгновенно. Может-может. Чтобы читатель узнал что ему нечего читать, ему все равно надо взять ресурс на чтение. Да и далеко не всегда бывает так что читатели должны прочитать именно "новые" сообщения от писателя. Часто надо просто прочитать что там в буфере лежит, а насколько это значение новое не важно. В любом случае, читатель вовсе не за один такт свои дела делает.
И если предпочтение отдано читателям, то может получится так что первый читатель хапает ресурс, в это время второй, третий, ... десятый читатели видят что ресурс запрещен на запись, но разрешен на чтение - поднимают свои собственные флаги "я читаю", и пока они читают, первый успел все дочитать, снять свой флаг, подождать, а потом снова пойти читать...
В этом сценарии писатель действительно никогда не дождется своей очереди.

В общем, читать Таненбаума до просветления. У него все типы блокировок хорошо рассмотрены.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Групповой или "общинный" mutex в Windows / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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