国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

對于C++鎖的封裝及使用

2019-11-11 07:39:41
字體:
來源:轉載
供稿:網友
說明:文件名的GS前綴不代表任何含義      這里的鎖類暫時只支持windows平臺。GSMutex.h
#PRagma once#include <windows.h>#include <WinBase.h>class GSMutex{public:	GSMutex(void);	~GSMutex(void);	void	Lock();			//加鎖	void	Unlock();		//解鎖	bool	TryLock();		//true獲取鎖成功,false失敗private:	CRITICAL_SECTION m_hOS;};class GSAutoMutex{public:	GSAutoMutex(GSMutex& mutex);	~GSAutoMutex(void);private :	GSMutex& m_mutex;};GSMutex.cpp
#include "StdAfx.h"#include "GSMutex.h"GSMutex::GSMutex(void){	InitializeCriticalSection(&m_hOS);	}GSMutex::~GSMutex(void){	DeleteCriticalSection(&m_hOS);}void GSMutex::Lock(){	EnterCriticalSection(&m_hOS);}void GSMutex::Unlock(){	LeaveCriticalSection(&m_hOS);}bool GSMutex::TryLock(){	if (!TryEnterCriticalSection(&m_hOS))	{		return false;	}	return true;}GSAutoMutex::GSAutoMutex(GSMutex& mutex):m_mutex(mutex){	m_mutex.Lock();}GSAutoMutex::~GSAutoMutex(void){	m_mutex.Unlock();}LockTest.cpp
// LockTest.cpp : 定義控制臺應用程序的入口點。//#include "stdafx.h"#include <windows.h>#include <WinBase.h>#include <process.h>#include "GSMutex.h"GSMutex cs;unsigned int WINAPI ThreadFuncA(LPVOID lp){	GSAutoMutex csAuto(cs);	Sleep(3000);	printf("This is threadA/n");	return 0;}unsigned int WINAPI ThreadFuncB(LPVOID lp){	GSAutoMutex csAuto(cs);	printf("This is threadB/n");	return   0;}int _tmain(int argc, _TCHAR* argv[]){	HANDLE hThreadHandleArry[2];	memset(hThreadHandleArry, 0, sizeof(HANDLE)*2);	hThreadHandleArry[0] = (HANDLE)_beginthreadex(NULL, 0, ThreadFuncA, NULL, 0, 0);	hThreadHandleArry[1] = (HANDLE)_beginthreadex(NULL, 0, ThreadFuncB, NULL, 0, 0);		WaitForMultipleObjects(2, hThreadHandleArry, TRUE, INFINITE); 	for (int i = 0; i < 2; i++)	{		if (hThreadHandleArry[i] != NULL)		{			//關閉線程句柄,不會導致線程關閉			CloseHandle(hThreadHandleArry[i]);			hThreadHandleArry[i] = NULL;		}	}	system("pause");	return 0;}參考文章:http://blog.csdn.net/feixiaoxing/article/details/7017727
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 汉寿县| 成安县| 梅河口市| 昆山市| 宝山区| 肃北| 蓝山县| 喀喇| 巴彦淖尔市| 嘉祥县| 三亚市| 永寿县| 洛川县| 邛崃市| 策勒县| 鸡泽县| 辰溪县| 昌平区| 杭锦旗| 璧山县| 托克托县| 钟山县| 太谷县| 彭州市| 台江县| 屏东县| 五常市| 拜泉县| 荣成市| 绥德县| 清新县| 汨罗市| 晴隆县| 天全县| 方城县| 镶黄旗| 内黄县| 苗栗市| 巴中市| 楚雄市| 加查县|