码迷,mamicode.com
首页 > 编程语言 > 详细

TTAS Lock C++11 实现

时间:2014-05-08 19:50:17      阅读:520      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

bubuko.com,布布扣
 1 template<class Lock>
 2 class lock_guard{
 3 public:
 4     explicit lock_guard(Lock& lock){
 5         lock.lock();
 6     }
 7     ~lock_guard(){
 8         lock.unlock();
 9     }
10     lock_guard(const lock_guard&) = delete;
11     lock_guard& operator = (const lock_guard&) = delete;
12 };
13 
14 class TTASLock{
15 private:
16     atomic<bool> state;
17 public:
18     void lock(){
19         while (true){
20             while (state.load()){};
21             if (!state.exchange(true, std::memory_order_relaxed))
22                 return;
23         }
24     }
25     void unlock(){
26         state.store(false);
27     }
28 };
bubuko.com,布布扣

 

TTAS Lock C++11 实现,布布扣,bubuko.com

TTAS Lock C++11 实现

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/zxh1210603696/p/3709559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!