Bonjour à tous, voilà j'ai un petit soucis dans mes threads.

Pour faire simple j'ai un rand() dans la méthode Run qui sert à générer un int aléatoire pour appeler la méthode Sleep() et cependant mes 2 Threads qui s'executent en parallèle génèrent la même valeur.

Un petite explication ?

(je mets une partie de code)

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
 
int hasard(int min, int max){
	return (int) (min + ((float) rand() / RAND_MAX * (max - min + 1)));
}
void robot::Run(void)
{
	int attente;
	int i;
	std::cout<<this->getNom()<<" demarre ..."<<std::endl;
 
	attente=hasard(500,1000);
 
	while(this->vie > 0)
	{
		std::cout<<attente<<std::endl;
		this->cycleDeVie();
		Sleep(attente);
		attente=hasard(500,1000);
	}
 
	std::cout<<this->getNom()<<" J'ai termine !!"<<std::endl;
}
Merci d'avance !