C++ 多线程编程实例
2012-08-24 15:33
591 查看
核心提示:从网上搜集来的非常基础的C++多线程实例,刚入门的可以看看,希望能有所帮助。Cpp代码 //这是2个线程模拟卖火车票的小程序 #includewindows.h #includeiostream.h DWORDWINAPIFun1Proc(LPVOIDlpParameter);//threaddat...
从网上搜集来的非常基础的C++多线程实例,刚入门的可以看看,希望能有所帮助。
Cpp代码
//这是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;
}
从网上搜集来的非常基础的C++多线程实例,刚入门的可以看看,希望能有所帮助。
Cpp代码
//这是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;
}
相关文章推荐
- 一个基于C++的多线程编程实例(CreateThread函数)
- C++多线程编程入门之经典实例
- C++多线程编程入门之经典实例
- C++ 多线程编程实例
- 多线程套接字编程-----程序实例(C++实现)
- C++多线程编程入门之经典实例
- C++ 多线程编程实例【2个线程模拟卖火车票的小程序】
- [Win32]C++多线程编程实例
- C++多线程编程入门之经典实例
- 多线程编程在C++下实现的简单实例
- C++多线程编程入门之经典实例
- 多线程编程-互斥锁/条件变量/关卡的使用实例
- LinuxC/C++编程基础(31) 使用thrift/rpc开发简单实例(续3)
- Windows 下 C/C++ 多线程编程入门参考范例
- C++操作XML编程实例 转
- Linux C/C++多线程pthread实例
- C++编程实例-类的成员
- nodejs中使用多线程编程的方法实例
- C++11 并发编程基础(一):并发、并行与C++多线程
- 多线程编程实例----多线程同时排序