C++ mutex RAII锁的自动释放

C++ mutex RAII锁的自动释放

#include 
#include 
#include 

using namespace std;

// RAII 锁的自动释放

class XMutex
{
public:
	XMutex(std::mutex& mux):mux_(mux)
	{
		cout << "构造函数" << "加锁" << endl;
		mux.lock();
	}
	~XMutex(){
		cout << "析构函数" << "释放锁" << endl;
		mux_.unlock();
	}
private:
	std::mutex& mux_;
};
static mutex mux;
void testMutex()
{
	XMutex lock(mux);
	cout << "testMutex......" << endl;
}

int main(int argc,char* argv[])
{
	for(int i = 0;i<10;i++)
	{
		thread th(testMutex);
		th.detach();
	}
	return 0;
}

你可能感兴趣的:(笔记,C++,c++,开发语言,mutex,锁)