【C++服务端技术】智能锁

#pragma once
#include <pthread.h>

namespace Extralib
{
	namespace Thread
	{
		/*
		* 利用对象生存周期自动加解锁,比较安全
		*/
		class AutoLock
		{
		public:
			pthread_mutex_t& m_locker;
		public:
			AutoLock( pthread_mutex_t& locker ):m_locker(locker)
			{
				::pthread_mutex_lock(&m_locker );
			};
			AutoLock( pthread_mutex_t* locker ):m_locker(*locker)
			{
				pthread_mutex_lock(&m_locker );
			};
			~AutoLock( )
			{
				pthread_mutex_unlock(&m_locker );
			};
		};

	}
}

 

posted @ 2020-12-08 10:26  byfei  阅读(177)  评论(0编辑  收藏  举报