boost::interprocess::named_mutex的翻译和学习
生活随笔
收集整理的這篇文章主要介紹了
boost::interprocess::named_mutex的翻译和学习
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
官方地址
-
named_mutex
簡介
// In header: <boost/interprocess/sync/named_mutex.hpp>class named_mutex { public:// construct/copy/destruct 構(gòu)建/復(fù)制/銷毀named_mutex(create_only_t, const char *, const permissions & = permissions());named_mutex(open_or_create_t, const char *, const permissions & = permissions());named_mutex(open_only_t, const char *);~named_mutex();// public member functionsvoid unlock();void lock();bool try_lock();bool timed_lock(const boost::posix_time::ptime &);// public static functionsstatic bool remove(const char *); };說明
- 一個具有全局名稱的mutex,所以可以從不同的進程中找到它。這個mutex不能放在共享內(nèi)存中,每個進程都應(yīng)該有自己的named_mutex。
named_mutex 公共構(gòu)造/復(fù)制/銷毀
- named_mutex(create_only_t create_only, const char * name,?const permissions & perm = permissions())。創(chuàng)建一個帶有名稱的全局mutex。錯誤時拋出interprocess_exception。
- named_mutex(open_or_create_t open_or_create, const char * name,??const permissions & perm = permissions())。打開或創(chuàng)建一個帶有名稱的全局mutex。如果mutex沒有創(chuàng)建,這個調(diào)用等同于named_mutex(create_only_t, ... ) 如果mutex已經(jīng)創(chuàng)建,這個調(diào)用等同于named_mutex(open_only_t, ... ) 不會拋出以下異常
- named_mutex(open_only_t open_only, const char * name)。如果一個全局的mutex已經(jīng)被創(chuàng)建,則打開該mutex的名稱。如果之前沒有創(chuàng)建,這個函數(shù)會拋出interprocess_exception。
- ~named_mutex() 銷毀*this,并表明調(diào)用進程已經(jīng)完成了對資源的使用。該破壞函數(shù)將去分配系統(tǒng)為該資源分配的任何系統(tǒng)資源,供該進程使用。該資源仍然可以調(diào)用open構(gòu)造函數(shù)重載再次打開。要從系統(tǒng)中刪除資源,使用remove()。
named_mutex 公共成員函數(shù)
- void unlock()。解鎖之前鎖定的mutex。
- void lock()。鎖定mutex,當(dāng)mutex已經(jīng)被鎖定時,會進入睡眠狀態(tài)。如果發(fā)現(xiàn)嚴重錯誤,會拋出interprocess_exception。
- bool try_lock()。嘗試鎖定mutex,當(dāng)mutex已經(jīng)鎖定時返回false,成功時返回true。如果發(fā)現(xiàn)嚴重錯誤,則拋出interprocess_exception。
- bool timed_lock(const boost::posix_time::ptime & abs_time);試圖鎖定mutex直到abs_time,超時時返回false,鎖定時返回true。如果發(fā)現(xiàn)嚴重的錯誤,會拋出interprocess_exception。
named_mutex 公共靜態(tài)函數(shù)
-
static bool remove(const char * name);從系統(tǒng)中刪除一個命名的mutex。錯誤時返回false。從不拋出。
總結(jié)
以上是生活随笔為你收集整理的boost::interprocess::named_mutex的翻译和学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux fork多进程 demo
- 下一篇: 英语口语Week 15 Wednesda