织梦CMS - 轻松建站从此开始!

罗索

boost::thread线程同步

jackyhwei 发布于 2010-01-20 15:46 点击:次 
互斥体对象可以保护竞赛的数据和不同线程间的安全线程同步.线程可以调用互斥体的成员函数lock()来取得互斥体的所有权,unlock()释放所有权.
TAG:

一: 互斥体的概念
 Lockable Concept
TimedLockable Concept
SharedLockable Concept
UpgradeLockable Concept
    互斥体对象可以保护竞赛的数据和不同线程间的安全线程同步.线程可以调用互斥体的成员函数lock()来取得互斥体的所有权,unlock()释放所有权.在Boost::thread中,互斥体可以递归使用,允许几个线程同时拥有互斥体的所有权.
   Lockable 概念
    void lock() //boost::thread_resource_error if an error occurs
    bool try_lock()//boost::thread_resource_error if an error occurs.
    void unlock()
    Lockable的实现类必须提供以上函数.通过调用lock()获得所有权,unlock()释放所有权.   
    TimedLockable 概念
 bool timed_lock(boost::system_time  const&  abs_time)
template<typename DurationType> bool timed_lock(DurationType const& rel_time
//boost::thread_resource_error if an error occurs.
    TimedLockable 概念精练于Lockable 支持超时尝试获锁,TimedLockable 的实现类除了实现Lockable类的成员外,还要实现上面两个函数.  
    SharedLockable 概念
 void lock_shared()
bool try_lock_shared()
bool timed_lock_shared(boost::system_time const& abs_time)
void unlock_shared()
    SharedLockable 精练于TimedLockable,用于提供共享所有权  
    UpgradeLockable概念
     void lock_upgrade()
void unlock_upgrade()
void unlock_upgrade_and_lock()
void unlock_upgrade_and_lock_shared()
void unlock_and_lock_upgrade()
    UpgradeLockable概念是一个完善SharedLockable概念,可以升级的所有权,以及共同的所有权和独自拥有。这是一个扩大到多读者/单写模式所提供的SharedLockable概念:一个单一的线程可能升级所有权的同时,其他有共同的所有权。线程所有权可随时升级, 尝试拥有独家所有权。如果没有其他线程有共同的所有权,升级完成,立即和线程现在独家拥有,它必须放弃要求解锁()一样,如果它被收购,呼吁锁()。
 Class template lock_guard

lock_guard(Lockable & m)
lock_guard(Lockable & m,boost::adopt_lock_t)
~lock_guard()
 

原文:http://www.cppblog.com/lifengjiang/archive/2009/02/04/71775.html

(lifengjiang)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201001/8352.html]
本文出处:cppblog.com 作者:lifengjiang
顶一下
(0)
0%
踩一下
(2)
100%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容