dongguojun 发表于 2013-1-19 04:09:40

线程互斥共享资源

#include <windows.h>#include <iostream.h>DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);int tickets=100;HANDLE hMutex;void main(){HANDLE handle1;HANDLE handle2;handle1=CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);handle2=CreateThread(NULL,0,ThreadProc2,NULL,0,NULL);CloseHandle(handle1);CloseHandle(handle2);hMutex=CreateMutex(NULL,false,NULL);Sleep(4000);//CloseHandle(hMutex);}DWORD WINAPI ThreadProc1(LPVOID lpParameter){while(true){WaitForSingleObject(hMutex,INFINITE);if (tickets>0){cout<<"Thread1 sell:"<<tickets--<<endl;} else{break;}ReleaseMutex(hMutex);}return 0;}DWORD WINAPI ThreadProc2(LPVOID lpParameter){while(tickets>0){WaitForSingleObject(hMutex,INFINITE);if (tickets>0){cout<<"Thread2 sell:"<<tickets--<<endl;} else{break;}ReleaseMutex(hMutex);}return 0;}/*HANDLE hMutex;//在主线程创建互斥对象hMutex=CreateMutex(NULL,false,NULL);//在分线程里请求互斥对象WaitForSingleObject(hMutex,INFINITE);//在分线程里释放互斥对象ReleaseMutex(hMutex);*/
页: [1]
查看完整版本: 线程互斥共享资源