У меня есть некоторые вопросы относительно блокировок чтения и записи в POSIX Pthreads в системе * nix, скажем, Linux.Как предотвратить голодание писателя в режиме чтения записи в pthreads
Я хочу знать, что представляет собой смещение по умолчанию для чтения записи. I.e предпочитает читать записи или наоборот? Предоставляет ли она api изменение этого поведения по умолчанию.
Предоставляет ли pix pice некоторый api, чтобы мы могли изменить pthread_rwlock_t, чтобы предотвратить голодание писателя? Из того, что я прочитал (пожалуйста, поправьте меня, если я ошибаюсь), реализация по умолчанию смещена в сторону потоков читателей, и поэтому потоки писателей могут столкнуться с голодом.
Я прочитал пример внедрения rw lock из книги «Программирование с помощью потоков Posix» Дэвида Бутенхофа.
Я хочу знать, как posix pthreads обрабатывают голодание писательских потоков? Есть ли какое-нибудь api-приложение, в котором мы могли бы установить атрибуты блокировки записи чтения, которые предотвратили бы запись голода (я никогда не слышал об этом)? Или пользователь должен решить эту проблему?
Если вы считаете, что ответ определен реализацией, пожалуйста, дайте мне пример того, как это делается в Linux, потому что это то, что я ищу.
Обратите внимание, что я просто хочу решения для системы * nix. Не думайте, что я груб, но публикация какого-то кода для Windows бесполезна для меня.
Спасибо всем за помощь и терпение :)
Использование мьютекса вместо rwlock позволит избежать этой проблемы. Если соперничество низкое, оно также быстрее в некоторых реализациях (таких как те, которые строят rwlock из мьютекса и переменной условия). – jilles