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 :


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);
 
}
devrait m'afficher coucou1 � l'infini or ce n'est pas le cas il y a aussi des coucou2 qui apparaissent.

petetre que j'ai mal compris l'utilisation des mutex je ne sais pas.

ps : je suis sur linux

Merci beaucoup pour votre aide.