Tengo algunas preguntas con respecto a bloqueos de lectura y escritura en POSIX Pthreads en un sistema * nix, digamos Linux por ejemplo.Cómo evitar el hambre de escritor en un bloqueo de lectura y escritura en pthreads
Deseo saber cuál es el sesgo predeterminado para el bloqueo de lectura y escritura, es decir, ¿prefiere las lecturas por encima de las escrituras o viceversa? Proporciona alguna API para cambiar este comportamiento predeterminado.
¿Posix pthread proporciona alguna API para que podamos cambiar la pthread_rwlock_t para evitar la falta de escritura? Según lo que he leído (corríjanme si me equivoco), la implementación predeterminada está sesgada hacia los hilos del lector y, por lo tanto, los hilos del escritor pueden enfrentar la inanición.
He leído la implementación de ejemplo de rw lock del libro Programming with Posix threads de David Butenhof.
Deseo saber cómo posix pthreads manejan la inanición de hilos de escritor? ¿Hay algún API con el que podamos establecer los atributos del bloqueo de lectura y escritura que evitaría la escritura de inanición (nunca he oído sobre eso)? ¿O el usuario tiene que manejar este problema?
Si crees que la respuesta está definida por la implementación, por favor dame un ejemplo de cómo se hace en Linux, porque eso es lo que estoy buscando.
Tenga en cuenta que solo quiero soluciones para un sistema * nix. No piense que soy grosero, pero publicar un código específico de Windows es inútil para mí.
Gracias a todos por su ayuda y paciencia :)
El uso de un mutex en lugar de un rwlock evitará este problema. Si la contención es baja, también es más rápida en algunas implementaciones (como las que construyen un rwlock a partir de un mutex y una variable de condición). – jilles