на главнуюВсе эхи RU.CPP
войти ?

Re: pthreads rd/wr lock'и

От Dmitry E. Oboukhov (2:5020/830.100) к Nickita A Startcev

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


DEO>> вопрос как правильно снять лок rd и поставить wr и наоборот чтобы
DEO>> избежать полного снятия лока с ресурса?

NAS> Зачем два разных лока?

NAS> Алгоритм записи: лочим, пишем, разлочиваем
NAS> Алгоритм чтения: лочим, читаем, разлочиваем
NAS> В обоих случаях если залочить не удалось, то ничего не делаем, а ждём разлочивания.

при таком алгоритме производительность получается никакая
ибо читает или пишет строго один процесс.

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

Разделить потоки на "чисто читающие" и "чисто пишущие" я к сожалению
не могу, бо система гораздо больше моей библиотечки и я даже потоки не
создаю тут :)

... Либерализм - затыкание ртов под вопли о свободе слова.

--- Mutt/1.5.18 (2008-05-17)
* Origin: Debian GNU Linux (2:5020/830.100)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.CPP?msgid=2:5020/830.100+06340083