android mutex

来源:互联网 发布:js怎么判断日期为空 编辑:程序博客网 时间:2024/06/05 23:58
我们在看framework层下面的一些C++文件里面总会看到这样的一行代码:AutoMutex _l(mLock);其实AutoMutex就是thread中的一种自动的互斥锁,你可以看framework/base/include/utils/thread.h就知道了:

Java代码  收藏代码
  1. typedef Mutex::Autolock AutoMutex;  


Java代码  收藏代码
  1. // Manages the mutex automatically. It'll be locked when Autolock is  
  2.     // constructed and released when Autolock goes out of scope.  
  3.     class Autolock {  
  4.     public:  
  5.         inline Autolock(Mutex& mutex) : mLock(mutex)  { mLock.lock(); }  
  6.         inline Autolock(Mutex* mutex) : mLock(*mutex) { mLock.lock(); }  
  7.         inline ~Autolock() { mLock.unlock(); }  
  8.     private:  
  9.         Mutex& mLock;  
  10.     };   


AutoMutex _L(mLock);
可知,这行代码就是创建一个Autolock变量,在构造函数中执行了锁定操作。