#include <windows.h> #include <iostream.h> DWORD WINAPI Fun1Proc(LPVOID lpParameter); DWORD WINAPI Fun2Proc(LPVOID lpParameter); int index = 0; int tickets = 100; 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); /* while(index++ < 1000) cout << "main thread is running " << endl; */ //Sleep(10); Sleep(4000); } DWORD WINAPI Fun1Proc(LPVOID lpParameter) { /* while(index++ < 1000) cout << "thread1 is running " << endl; */ while(true) { if( tickets > 0) { Sleep(1); cout << "thread1 sell ticket :" << tickets-- << endl; } else { break; } } return 0; } DWORD WINAPI Fun2Proc(LPVOID lpParameter) { while(TRUE) { if( tickets > 0) { Sleep(1); cout << "thread2 sell ticket:" <<tickets-- << endl; } else { break; } } return 0; }