C++多线程的例子

时间:2021-05-02

在多线程的程序里,不同的线程可以做不同的事情,下面演示一个多线程的例子。

// MultiThread.cpp : 定义控制台应用程序的入口点。//#include "stbdafx.h"#include <windows.h>#include <iostream>using namespace std;int tickets = 100;HANDLE hMutex;DWORD WINAPI Fun1Proc(LPVOID lp);DWORD WINAPI Fun2Proc(LPVOID lp);int _tmain(int argc, _TCHAR* argv[]){HANDLE hThread1,hThread2;hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);hThread2 = CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);CloseHandle(hThread1);CloseHandle(hThread2);hMutex = CreateMutex(NULL,FALSE,NULL);Sleep(2000);system("pause");return 0;}DWORD WINAPI Fun1Proc(LPVOID lp){while(1){ WaitForSingleObject(hMutex,INFINITE); if(tickets > 0) { Sleep(10); cout << "thread1 sell ticket." << tickets-- <<endl; } else break; ReleaseMutex(hMutex);}return 0;}DWORD WINAPI Fun2Proc(LPVOID lp){while(1){ WaitForSingleObject(hMutex,INFINITE); if(tickets > 0) cout << "thread2 sell ticket." << tickets-- <<endl; else break; ReleaseMutex(hMutex);}return 0;}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章