/**内部代码*/ #include <windows.h> #include <iostream> using namespace std; int tickets = 100; int mux1 = 0; int mux2 = 0; DWORD WINAPI func1(LPVOID lp); DWORD WINAPI func2(LPVOID lp); int main() { HANDLE h1,h2; h1 = CreateThread(NULL,0,func1,NULL,0,NULL); h2 = CreateThread(NULL,0,func2,NULL,0,NULL); Sleep(5000); CloseHandle(h1); CloseHandle(h2); cout<<"program exit...\n"; exit(0); return 0; } DWORD WINAPI func1(LPVOID lp) { while(1) { Sleep(10); mux1 = 1; if(tickets > 0) { if(!mux2) { cout<<"thread 1 sell ticket: "<<tickets--<<endl; } } else { break; } mux1 = 0; } return 0UL; } DWORD WINAPI func2(LPVOID lp) { while(1) { Sleep(10); mux2 = 1; if(tickets > 0) { if(!mux1) { cout<<"thread 2 sell ticket: "<<tickets--<<endl; } } else { break; } mux2 = 0; } return 0UL; }
- 粉丝: 11
- 资源: 87
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助