class Autolock { public: inline Autolock(Mutex &mutex) : mLock(mutex) { mLock.lock(); } inline Autolock(Mutex *mutex) : mLock(*mutex) { mLock.lock(); } private: Mutex &mLock; };
AutoLock 的用法:
比如可以在头文件中定义一把锁,android::Mutex mLock;
在要使用锁的地方,定义一个AutoLock,如,android::Mutex::AutoLock _l(mLock); 利用_l对象的生命周期来自动调用析构(释放锁)就可以啦。