Bonsoir,
J ai n lecteurs et 1 ecrivains.
l ecrivain ecrit dans des fichier une seul fois. Avant l ecriture, les lecteur ne peut pas lire, mais pres il peuvent lire sans avoir besoin d exclusion mutuelle.
J ai donc cree une structure comme ceci
Le pseudo langage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 typdef struct file { char *file_name; // nom du fichier int is_ready; // permet de savoir si le fichier est pret a etre lu. pthread_mutex_t mutex; // avoir acces au fichier de maniere exclusive. pthread_cond_t cond; }
lecteurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5- lock mutex - si is_ready = 0 - unlock mutex. -on lit le fichier.
ecrivain:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6- lock mutex - On ecrit dans le fichier. - is_ready = 1 - on reveille tous les lecteurs. -unmock mutex.
Je ne sais pas si c est la meilleur facon
De plus quand l ecrivain a fiit d ecrire, le mutex et la condition ne servent plus a rien. J aimerai avoir vos commentaire pour ameliorer ce code.
Merci.
Partager