http://blog.csdn.net/lsdmx2016/article/details/17415263
版权声明:本文为博主原创文章,未经博主允许不得转载。
Android libutils 中定义了 Mutext 和 Mutex::AutoLock 对象来进行临界资源的加锁和解锁。Mutex::AutoLock 在构造时进行加锁,析构时进行解锁。
class Autolock {
public:
inline Autolock(Mutex& mutex) : mLock(mutex) { mLock.lock(); }
inline Autolock(Mutex* mutex) : mLock(*mutex) { mLock.lock(); }
inline ~Autolock() { mLock.unlock(); }
private:
Mutex& mLock;
};
具体代码实现如上,所以在多线程访问的代码中,只要定义 Mutex::AutoLock 对象,就可以进行线程的同步了。
class Autolock {
public:
inline Autolock(Mutex& mutex) : mLock(mutex) { mLock.lock(); }
inline Autolock(Mutex* mutex) : mLock(*mutex) { mLock.lock(); }
inline ~Autolock() { mLock.unlock(); }
private:
Mutex& mLock;
};
具体代码实现如上,所以在多线程访问的代码中,只要定义 Mutex::AutoLock 对象,就可以进行线程的同步了。