В чем разница ч / б PRLock и PRRWLock - PullRequest
1 голос
/ 14 июня 2011

В чем разница между ч / б PRLock и PRRWLock предоставлены библиотекой nspr?

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Я ничего не знаю о библиотеке, но названия предполагают, что одна из них - стандартная блокировка, а другая - блокировка чтения / записи.Первый всегда дает монопольный доступ, а второй допускает множественное одновременное чтение, но эксклюзивные записи.Например, в pthreads api есть методы pthread_mutex_lock / pthread_mutex_unlock и pthread_rwlock_rdlock / pthread_rwlock_wrlock.

0 голосов
/ 14 июня 2011

PRLock - простой мьютекс . PRRWLock является ( к сожалению недокументированным ) блокировкой чтения-записи .

Единственный источник документации, который я могу найти в PRRWLock, содержится в prrwlock.h и включает методы, которые можно ожидать для реализации блокировки чтения-записи:

  • Создание и уничтожение
  • Получить Reader-lock
  • Приобрести Writer-lock
  • снять блокировку

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

...