/**内部代码*/ #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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 问题2.zip
- QT登录模块,登录时获取txt文件内账号密码进行判断,注册时写入到本地文件user.txt
- 湖南麒麟系统下,因某些原因无法正常进入系统时可以进入单用户模式
- tsunami-udp 是一款专为网络加速诞生的小工具 用TCP进行传输控制、用UDP进行数据传输
- 基于FreeRTOS、LCD1602 、STM32CubeMX、GP2Y0A21YK0F红外测距传感器的测距proteus仿真
- C语言中的一些算法和面试题
- 個人使用2個人使用2個人使用2個人使用2個人使用2
- A72BDB68-F5FA-4D0F-906E-EACAA6A1EFA5.rar
- TTP229-BSF数据手册
- 時間管理.pptx