TMultiReadExclusiveWriteSynchronizer |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
TMultiReadExclusiveWriteSynchronizer |
NEDD |
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: 0 |
Ребят, как правильно использовать этот класс (TMultiReadExclusiveWriteSynchronizer)? Может пример бросите сюда, что к чему.
|
hardcase |
Сообщение
#2
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Ребят, как правильно использовать этот класс (TMultiReadExclusiveWriteSynchronizer)? Может пример бросите сюда, что к чему. Класс (как видно из названия) используется для синхронизации доступа по записи. Например, в случае, когда у нас есть некий защищаемый ресурс, из которого можно массово читать (переменная состояния например), но запись должна быть исключительной.Т.е. для доступа по чтению мы говорим BeginRead() и начинаем читать, после завершения говорим EndRead(). Для записи - BeginWrite() и по завершении операции EndWrite(). Если некий поток (или много потоков) в момент попытки записи другим потоком (BeginWrite) находится в состоянии чтения (выполнил BeginRead но не дошёл до EndRead), то поток, открывающий запись будет блокирован до тех пор, пока все читающие потоки не скажут EndRead. Операция BeginRead может блокировать поток, только в случае, если в этот момент происходит запись (открыт BeginWrite). -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Текстовая версия | 20.04.2024 10:04 |