1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
HANDLE mut;
char text[5000];
unsigned long WINAPI Thread_mutex (void * Param)
{
cout << " lencement thread \n" ;
cout << " WaitForSingleObject thread \n" ;
WaitForSingleObject(mut,INFINITE);
cout << " WaitForSingleObject thread effectué\n" ;
cout << " traitement de la thread\n" ;
cout << " ReleaseMutex thread \n" ;
ReleaseMutex(mut);
cout << " ReleaseMutex thread effectué\n\n" ;
return 3;
}
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hThread[1];
unsigned long ThreadId;
cout << "\n\n\ncreation de mutex(CreateMutex)" << endl;
mut=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");
WaitForSingleObject(mut,INFINITE);
cout << "main: creation de 1 threads (CreateThread) avec mutex" << endl;
hThread[0] = CreateThread(NULL,NULL,Thread_mutex,NULL, NULL, &ThreadId);
cout << "ID1 : " << ThreadId << "\n" << endl;
cout << "attente de tout les threads (WaitForMultipleObjects)" << endl;
WaitForMultipleObjects(1, hThread, TRUE, INFINITE);
cout << "fermeture mutex(CloseHandle)" << endl;
CloseHandle(mut);
cout << "fin" << endl;
system ("pause");
return 0;
} |
Partager