Эффективность использования pthread_rwlock при большом количестве читателей

Пока я просматриваю справочную страницу функции pthread_rwlock_unlock, я заметил, что функция вернет EPERM, если вызывающий поток не владеет rwlock.

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

Здесь возникает вопрос:

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

Большое спасибо, ребята :)

5
задан Hmm 25 June 2011 в 21:15
поделиться