Нужна помощь в выборе замков для синхронизации потоков - PullRequest
0 голосов
/ 10 июня 2009

У меня есть несколько модифицирующих потоков и несколько потоков чтения, которые все обращаются к глобальной переменной X. Я хочу сделать мою политику синхронизации такой:

Когда поток пытается изменить X, ему сначала потребуется блокировка, и несколько потоков могут иметь несколько блокировок.

Когда поток пытается прочитать X, он должен ждать, пока все модифицирующие потоки не снимают свои блокировки.

Есть ли какое-нибудь решение этой ситуации в библиотеке Linux pthread? Большое спасибо

1 Ответ

2 голосов
/ 10 июня 2009

Вы ищете блокировку чтения / записи (или блокировку чтения-записи). Я считаю, есть один в pthreads (pthread_rwlock _ *).

...