Bonjour à tous.
J'ai écrit un petit programme en C++ pour tester pthread_mutex mais ça ne marche pas je ne comprend pas.
J'ai lu qu'un mutex est un objet d'exclusion qui sert à protéger des données partagées de modifications concurrentes et à implémenter des sections critiques.
je me suis donc dit que le programme suivant :
devrait m'afficher coucou1 à l'infini or ce n'est pas le cas il y a aussi des coucou2 qui apparaissent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include <pthread.h> #include <iostream> #include <time.h> using namespace std; pthread_mutex_t acces=PTHREAD_MUTEX_INITIALIZER; void affiche(int nbr){ pthread_mutex_lock(&acces); for(;;) cout<<"coucou "<<nbr<<endl; pthread_mutex_unlock(&acces); } int main() { pthread_t th1; pthread_t th2; pthread_create(&th1,0,(void * (*)(void*))affiche,(void *)1); pthread_create(&th2,0,(void * (*)(void*))affiche,(void *)2); pthread_join(th2,0); pthread_join(th1,0); }
petetre que j'ai mal compris l'utilisation des mutex je ne sais pas.
ps : je suis sur linux
Merci beaucoup pour votre aide.
Partager