1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
//Thread principal
//instancier un mutex buffer vide
MutexBufVide = CreateMutex(NULL, false, NULL);
//instancier un mutex buffer plein
MutexBufPlein = CreateMutex(NULL, true, NULL);
//instancier un thread consommateur
Consommateur = new ThreadConso(false);
//instancier un thread producteur
Producteur = new ThreadProducteur(false);
//Thread consommateur
//le consommateur attend que le mutex buffer plein soit libre
WaitForSingleObject(MutexBufPlein, INFINITE);
Form1->Memo1->Lines->Add("Le consommateur lit le buffer");
//relâcher le mutex MutexBufVide
ReleaseMutex(MutexBufVide);
//Thread producteur
WaitForSingleObject(MutexBufVide, INFINITE);
Form1->Memo1->Lines->Add("Le producteur écrit dans le buffer");
ReleaseMutex(MutexBufPlein); |
Partager