随笔 - 7  文章 - 6  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(1)

随笔档案

文章分类

搜索

  •  

积分与排名

  • 积分 - 32765
  • 排名 - 600

最新评论

阅读排行榜

评论排行榜

实现代码:

    typedef enum { UNIQUE_LOCK, SHARED_LOCK } LockType;

template<LockType lt>
class shared_lock;

template 
<>
class shared_lock<UNIQUE_LOCK>private boost::noncopyable {
public:
    shared_lock(boost::shared_mutex
& sm): sm_(sm) sm_.lock(); }
    
~shared_lock() { sm_.unlock(); }
private:
    boost::shared_mutex
& sm_;
}
;

template 
<>
class shared_lock<SHARED_LOCK>private boost::noncopyable {
public:
    shared_lock(boost::shared_mutex
& sm): sm_(sm) sm_.lock_shared(); }
    
~shared_lock() { sm_.unlock_shared(); }
private:
    boost::shared_mutex
& sm_;
}
;



调用方式:

    boost::shared_mutex session_mutex_;

//独占锁定
shared_lock<UNIQUE_LOCK> lock(session_mutex_);

//共享锁定
shared_lock<SHARED_LOCK> lock(session_mutex_);


http://www.cppblog.com/thisisbin/archive/2009/01/21/72417.html 一文 single-write/multi-read 就可以应用这种RAII风格的共享锁实

posted on 2009-01-22 10:22 许海斌 阅读(1362) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理