Question bête sur le fonctionnement des mutex
Yop all !
En fait je me pose juste une question concernant les threads (vu que je peux rien tester de mon côté pour le moment je fais appel aux habitués :mrgreen:), en particulier le comportement du lock du mutex:
imaginons N threads appelant une fonction Func, implémentée comme ceci:
Code:
1 2 3 4 5 6 7 8
| static boost::mutex my_mutex;
void Func()
{
my_mutex.lock();
doSomethings();
my_mutex.unlock();
} |
Supposons N1 (premier thread) rentre dans la fonction,lock le mutex et commence à faire ses trucs. Et là se ramène N2 juste après, puis N3 un peu après, etc...
A ce moment, N1 a fini et unlock le mutex. Question: Lequel des threads va locker juste derrière ? N2 ? N3 ? On n'en sait rien ?
Merci beaucoup :D