2015-02-20 4 views
0

Просто простой вопрос, учитывая блокировку чтения и записи по тем же данным, с очень большим количеством потоков, сражающихся за получение блокировки, могу ли я быть уверенным, что один из этих потоков получит блокировку на определенный момент? Я знаю, что в расписании нет порядка, чтобы освободить блокировку к определенному потоку, но это абсолютно случайно? В принципе, у меня может быть 16 потоков чтения и 1 поток писем, даже 16 на холостом ходу на условной переменной, могу ли я быть уверенным, что написание получит блокировку ???Блокировка блокировки Mutex

+0

Зависит от реализации. – deviantfan

+0

меняется между posix и win thread? –

+0

Нет, это не тот сценарий, где простой мьютекс может выполнить свою работу. Вам нужен [блокиратор чтения-записи] (http://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock). Не пишите свои собственные. –

ответ

0

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

+0

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

Смежные вопросы