C++ 多线程编程实例
来源:互联网 发布:什么是人工智能英文 编辑:程序博客网 时间:2024/05/02 06:09
- //这是2个线程模拟卖火车票的小程序
- #include <windows.h>
- #include <iostream.h>
- DWORD WINAPI Fun1Proc(LPVOID lpParameter);//thread data
- DWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread data
- int index=0;
- int tickets=10;
- 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,TRUE,"tickets");
- if (hMutex)
- {
- if (ERROR_ALREADY_EXISTS==GetLastError())
- {
- cout<<"only one instance can run!"<<endl;
- return;
- }
- }
- WaitForSingleObject(hMutex,INFINITE);
- ReleaseMutex(hMutex);
- ReleaseMutex(hMutex);
- Sleep(4000);
- }
- //线程1的入口函数
- DWORD WINAPI Fun1Proc(LPVOID lpParameter)//thread data
- {
- while (true)
- {
- ReleaseMutex(hMutex);
- WaitForSingleObject(hMutex,INFINITE);
- if (tickets>0)
- {
- Sleep(1);
- cout<<"thread1 sell ticket :"<<tickets--<<endl;
- }
- else
- break;
- ReleaseMutex(hMutex);
- }
- return 0;
- }
- //线程2的入口函数
- DWORD WINAPI Fun2Proc(LPVOID lpParameter)//thread data
- {
- while (true)
- {
- ReleaseMutex(hMutex);
- WaitForSingleObject(hMutex,INFINITE);
- if (tickets>0)
- {
- Sleep(1);
- cout<<"thread2 sell ticket :"<<tickets--<<endl;
- }
- else
- break;
- ReleaseMutex(hMutex);
- }
- return 0;
- }
0 0
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- linux下C语言多线程编程实例
- WWDC2014之iOS使用动态库
- PHP草根论之设计模式-解释器模式
- 将Android虚拟机上输出日志logcat输出到win7电脑上。
- 特征降维之SVD分解
- nyoj-56 阶乘因式分解(一)
- C++ 多线程编程实例
- 1、libgdx简介
- 基于注解的SpringMVC简单介绍
- PL SQL导入dmp文件
- ExtJS中get、getDom、getCmp、getBody、getDoc的使用
- Storm高级原语(四) — Trident API 综述
- LaunchScreen.Xib
- tcp与udp编程(1对1)
- 黑马程序员----------异常