Comment prévenir l'auteur de la famine dans une écriture de lecture de verrouillage dans les pthreads

J'ai quelques questions concernant les verrous en lecture /écriture dans POSIX Pthreads sur un *nix système, disent Linux par exemple.

Je souhaite savoir quel est le biais par défaut pour lire verrou d'écriture, j'.e t il préfère lit plus écrit ou vice-versa ? Elle fournit à certaines api pour modifier ce comportement par défaut.

Ne posix pthread fournir certaines api de sorte que nous pourrions changer la pthread_rwlock_t pour empêcher l'auteur de faim ? De ce que j'ai lu(merci de me corriger si je me trompe), l'implémentation par défaut est biaisé en faveur de threads de lecture et donc l'écrivain threads peuvent faire face à la famine.

J'ai lu l'exemple de la mise en œuvre de rw de verrouillage du livre de la Programmation avec les threads Posix par David Butenhof.

Je souhaite savoir comment posix pthreads poignée de famine de l'écrivain threads ? Est-il une api à l'aide de laquelle nous avons pu définir les attributs de la lecture et en écriture verrouillage empêcher d'écrire faim (je n'ai jamais entendu parler) ? Ou l'utilisateur d'avoir à gérer ce problème ?

Si vous pensez que la réponse est la mise en œuvre définies alors s'il vous plaît me donner des exemple de la façon dont c'est fait sous Linux, parce que c'est ce que je suis à la recherche d'.

Veuillez noter que, je veux juste des solutions pour un *nix système. Ne pensez pas que je suis impoli, mais l'affichage des fenêtres de code est inutile pour moi.

Merci à vous tous pour votre aide et votre patience 🙂

  • À l'aide d'un mutex à la place d'un rwlock pour éviter ce problème. Si le conflit est faible, il est également plus rapide dans certaines implémentations telles que celles de la construction d'une rwlock à partir d'un mutex et une variable de condition).
InformationsquelleAutor ghayalcoder | 2010-02-03