Android mutex

我們在看framework層下面的一些C++文件裏面總會看到這樣的一行代碼:AutoMutex _l(mLock);其實AutoMutex就是thread中的一種自動的互斥鎖,你可以看framework/base/include/utils/thread.h就知道了:

typedef Mutex::Autolock AutoMutex;


// Manages the mutex automatically. It'll be locked when Autolock is
// constructed and released when Autolock goes out of scope.
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;
};


AutoMutex _L(mLock);
可知,這行代碼就是創建一個Autolock變量,在構造函數中執行了鎖定操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章