c++ mutex
来源:互联网 发布:chakra linux 编辑:程序博客网 时间:2024/06/08 01:52
#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;
//创建互斥对象
hMutex=CreateMutex(NULL,false,"tickets");
if (hMutex)
{
if (ERROR_ALREADY_EXISTS==GetLastError())
{
cout<<"only one instance can run!"<<endl;
return;
}
}
//创建线程
hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
CloseHandle(hThread1);
CloseHandle(hThread2);
Sleep(2000);
}
//线程1的入口函数
DWORD WINAPI Fun1Proc(LPVOID lpParameter)//thread data
{
while (true)
{
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)
{
WaitForSingleObject(hMutex,INFINITE);
if (tickets>0)
{
Sleep(1);
cout<<"thread2 sell ticket :"<<tickets--<<endl;
}
else
{
break;
}
ReleaseMutex(hMutex);
}
return 0;
}
- 多线程(C++)同步Mutex
- 多线程(C++)同步Mutex
- Mutex
- Mutex
- mutex
- Mutex
- Mutex
- Mutex
- Mutex
- mutex
- Mutex
- C#Monitor类 Lock Mutex类详解
- Linux C 编程——互斥锁mutex
- c posix thread mutex cond rwlock
- Mutex线程同步 (C/C++ Windows Platform SDK 实现)
- 使用Mutex实现程序单实例运行(c#)
- 使用Mutex实现程序单实例运行(c#)
- 线程池类(使用C++,pure API,Mutex,Event)
- JavaScript调用本地EXE文件与查看注册表代码
- 关于预研工作的思考
- minigui 1.6.10 + tslib 触摸屏较正方案
- mysql 5使用手册
- Flex中调用Google Map的方法
- c++ mutex
- Linux下获取MAC地址
- Ubuntu10.04下配置tty(分辨率及中文显示)
- Scomp 命令参数
- javascript中iframe里面的页面调用父窗口js函数的方法
- jquery如何判断checkbox(复选框)是否被选中(转)
- 程序复杂性度量
- C++ enum类型的一个更好的用法
- c#窗口抖动代码 仿QQ窗口抖动 By:xluo