随笔 - 7  文章 - 6  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(1)

随笔档案

文章分类

搜索

  •  

积分与排名

  • 积分 - 32930
  • 排名 - 607

最新评论

阅读排行榜

评论排行榜

实现代码:

    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 许海斌 阅读(1373) 评论(0)  编辑 收藏 引用

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