Remplissage d'un tableau, plusieurs threads
Bonjour,
J'ai 3 threads qui s'occupent de remplir un tableau.
Soit la variable "i" représentant l'index dans le tableau... i part de 0 jusqu'à "max".
Le programme fonctionn un px comme suit:
thread 1 met un int dans le tableau puis incrémente i
thread 2 fait de même
thread 3 aussi
l'ordre d'apparition m'importe peux dans le tableau, c'est d'ailleurs pourquoi je veux utiliser plusieurs threads.
Mais un problème potentiel que je vois venir me chicote et je voudrais en être sûr.
Chaque thread fait comme suit:
Code:
1 2 3
|
int j = ++i;
array[j] = value |
Voilà, avant de modifier le tableau, j'incrémente d'abord i afin que deux threads ou plus n'utilisent pas simultanément la même valeur de i (ce qui serait bien embêtant).
Le problème est... est-il encore possible que cela arrive? En effet disons dans un cas assez idéal où deux threads sont parfaitement synchronisés, parfaitement, aucun n'a de retard sur l'autre, alors ils auront donc la même valeur de 'j' au même moment et il pourrait y avoir conflit non?
Suis-je mieux d'intégrer des mutex?
Merci bcp
Array