Bonjour,
J'ai un programme dans lequel j'ai plusieurs threads. Ces threads affichent du texte avec cout.
Mon problème c'est que quand je veux afficher des variables avec par exemple la ligne de code suivante dans un thread :
cout << " La variable A vaut "<<A<< " et la variable B vaut : "<< B << "\n" << endl;
, et la ligne de code suivante dans un 2eme thread :
cout << " Il fait "<<temperature<< " degrés aujourd'hui\n" << endl;
et bien , j'ai parfois les écritures des 2threads qui se chevauchent.
Exemple :
Dans le cas ou il faudrai afficher les 2 phrases suivantes :
-le thread 1 devrait afficher "La variable A vaut 5 et la variable B vaut 10"
-le thread 2 devrait afficher "Il fait 7 degrés aujourd'hui"
Cela peut donner par exemple
"La variable A vaut Il fait 5 7 et la variable B vaut degrés aujourd'hui
10".
En gros, ca alterne l'affichage de chaque threads. comment rectifier le probleme?
J'ai pensé à des printf() qui rectifient bien cela et empechent l'alternance, mais là se pose un autre problème, cette fois ci avec un affichage de string. Quand j'écris ceci :
1 2 3
| string texte ="aaaaa";
printf("\nprintf : %s ",texte );
cout <<"\ncout : "<< texte << "\n" << endl; |
, j'obtiens :
"printf :
cout : aaaaa"
En fait le printf n'affiche pas mon string...
Cela fait plusieurs questions, j'espere que quelqu'un pourra m'aider
Partager