日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

boost::interprocess::named_mutex的翻译和学习

發布時間:2023/12/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boost::interprocess::named_mutex的翻译和学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官方地址

  • named_mutex

簡介

// In header: <boost/interprocess/sync/named_mutex.hpp>class named_mutex { public:// construct/copy/destruct 構建/復制/銷毀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不能放在共享內存中,每個進程都應該有自己的named_mutex。

named_mutex 公共構造/復制/銷毀

  • named_mutex(create_only_t create_only, const char * name,?const permissions & perm = permissions())。創建一個帶有名稱的全局mutex。錯誤時拋出interprocess_exception。
  • named_mutex(open_or_create_t open_or_create, const char * name,??const permissions & perm = permissions())。打開或創建一個帶有名稱的全局mutex。如果mutex沒有創建,這個調用等同于named_mutex(create_only_t, ... ) 如果mutex已經創建,這個調用等同于named_mutex(open_only_t, ... ) 不會拋出以下異常
  • named_mutex(open_only_t open_only, const char * name)。如果一個全局的mutex已經被創建,則打開該mutex的名稱。如果之前沒有創建,這個函數會拋出interprocess_exception。
  • ~named_mutex() 銷毀*this,并表明調用進程已經完成了對資源的使用。該破壞函數將去分配系統為該資源分配的任何系統資源,供該進程使用。該資源仍然可以調用open構造函數重載再次打開。要從系統中刪除資源,使用remove()。

named_mutex 公共成員函數

  • void unlock()。解鎖之前鎖定的mutex。
  • void lock()。鎖定mutex,當mutex已經被鎖定時,會進入睡眠狀態。如果發現嚴重錯誤,會拋出interprocess_exception。
  • bool try_lock()。嘗試鎖定mutex,當mutex已經鎖定時返回false,成功時返回true。如果發現嚴重錯誤,則拋出interprocess_exception。
  • bool timed_lock(const boost::posix_time::ptime & abs_time);試圖鎖定mutex直到abs_time,超時時返回false,鎖定時返回true。如果發現嚴重的錯誤,會拋出interprocess_exception。

named_mutex 公共靜態函數

  • static bool remove(const char * name);從系統中刪除一個命名的mutex。錯誤時返回false。從不拋出。

總結

以上是生活随笔為你收集整理的boost::interprocess::named_mutex的翻译和学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。