帮朋友找到一段程序,贴在这里了。 ———————————————————— #include <windows.h> #include <iostream.h> DWORD WINAPI Fun1Proc(LPVOID lpParameter); DWORD WINAPI Fun2Proc(LPVOID lpParameter); int tickets=100; HANDLE hMutex; void main() { HANDLE hThread1; HANDLE hThread2; hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL); hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL); CloseHandle(hThread1); CloseHandle(hThread2); hMutex=CreateMutex(NULL,FALSE,NULL); Sleep(4000); } DWORD WINAPI Fun1Proc(LPVOID lpParameter) { while (true) { WaitForSingleObject(hMutex,INFINITE); if(tickets>0) {Sleep(1); cout<<"Thread1 sell ticket"<<tickets--<<endl;} else break; ReleaseMutex(hMutex); } return 0; } DWORD WINAPI Fun2Proc(LPVOID lpParameter) { while (true) {WaitForSingleObject(hMutex,INFINITE); if(tickets>0) {Sleep(1); cout<<"Thread2 sell ticket"<<tickets--<<endl;} else break; ReleaseMutex(hMutex); } return 0; }