锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一本色道久久88加勒比—综合,久久久久人妻一区精品色,国产高潮国产高潮久久久http://www.shnenglu.com/Error/category/20456.htmlzh-cnSun, 31 Mar 2013 15:09:32 GMTSun, 31 Mar 2013 15:09:32 GMT60boost::atomic 瀹炵幇 spinlockhttp://www.shnenglu.com/Error/archive/2013/03/31/198988.htmlEnicEnicSun, 31 Mar 2013 13:49:00 GMThttp://www.shnenglu.com/Error/archive/2013/03/31/198988.htmlhttp://www.shnenglu.com/Error/comments/198988.htmlhttp://www.shnenglu.com/Error/archive/2013/03/31/198988.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/198988.htmlhttp://www.shnenglu.com/Error/services/trackbacks/198988.html
鍏堢湅涓媌oost緇欑殑渚嬪瓙錛屾垜瑙夊緱鏈夐棶棰橈細(xì)

#include
<boost/atomic.hpp> class spinlock { private: typedef enum {Locked, Unlocked} LockState; boost::atomic<LockState> state_; public: spinlock() : state_(Unlocked) {} void lock() {
// 鍙兘榪欓噷鐨刡oost::memory_order_acquire鏈夊師瀛愭搷浣滅殑鏁堟灉鍚э紝鍋朵笉鏄緢鐞嗚В錛屼笉榪囨垜瑙夊緱榪欓噷搴旇鐢╟ae鎿嶄綔鎵嶅 while (state_.exchange(Locked, boost::memory_order_acquire) == Locked) { /* busy-wait */ } } void unlock() {
// 榪欓噷閮界洿鎺ュ啓涓嶅仛媯(gè)鏌ヤ簡(jiǎn)錛屾洿鍔犻毦浠ョ悊瑙? state_.store(Unlocked, boost::memory_order_release); } };

鏈夊彲鑳芥槸鎴戜笉鐞嗚В鍚庨潰鐨勫唴瀛樿闂弬鏁扮殑鎰忎箟錛岀粰涓嬫垜鑷繁鐨勫疄鐜幫細(xì)
class CESpinLock : boost::noncopyable
{
private:
    typedef 
enum {emUnlocked = 0, emLocked} EM_LockState;

public:
    CESpinLock() : m_atomicState(emLocked)
    {
    }

public:
    
void lock()
    {
        EM_LockState state 
= emUnlocked;
        
while(false == m_atomicState.compare_exchange_strong(state, emLocked))
        {
            state 
= emUnlocked;
        }
    }

    
void unlock()
    {
        EM_LockState state 
= emLocked;
        
while(false == m_atomicState.compare_exchange_strong(state, emUnlocked))
        {
            state 
= emLocked;
        }
    }

private:
    boost::atomic
<EM_LockState> m_atomicState;
};


鍙互閫傚綋鐨勫湪false閲岃竟鍔犱竴鐐箂leep鎿嶄綔鎰熻銆?br />
榪樻湁涓鐐瑰氨鏄笉澶縺鐑堣繖閲岀殑cae鎿嶄綔鍒嗕袱縐?strong鍜寃eak

bool compare_exchange_weak(T & expected, T desired, memory_order success_order, memory_order failure_order)

Compare current value with expected, change it to desired if matches. Returns true if an exchange has been performed, and always writes the previous value back in expected. May fail spuriously, so must generally be retried in a loop.

bool compare_exchange_strong(T & expected, T desired, memory_order order)

Compare current value with expected, change it to desired if matches. Returns true if an exchange has been performed, and always writes the previous value back in expected

瀹炲湪涓嶇悊瑙?nbsp;May fail spuriously, so must generally be retried in a loop.鐨勬剰涔夛紝涓嶈繃鐪嬩簡(jiǎn)浠g爜錛屽湪win32鐨勫疄鐜頒笂錛寃eak鏄皟鐢ㄤ簡(jiǎn)stong瀹炵幇鐨勩?br />


 VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:49:07
atomic鐨?nbsp;compare_exchange_weak
compare_exchange_weak
鏈夊暐鍖哄埆

姹傝В閲?br />vczh.Iskandar<vczh@163.com>  21:49:27
涓嶆槸涓鏍峰悧
寰¤櫄鑸熷寳(314969051)  21:49:40
鏀逛唬鐮佷腑錛?nbsp;ing
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:49:49
Windows涓婄殑瀹炵幇鏄竴鏍風(fēng)殑
May fail spuriously, so must generally be retried in a loop. 
榪欎竴鍙ユ庝箞鐞嗚В鍛?br />vczh.Iskandar<vczh@163.com>  21:50:07
compare_exchange_weak
compare_exchange_weak
璐ㄩ噺鏈澶czh綺?402740419)  21:50:14
compare_exchange_weak
compare_exchange_weak

VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:50:16
strong

compare_exchange_strong
榪樻湁涓涓棶棰?br />class spinlock {
private:
  typedef enum {Locked, Unlocked} LockState;
  boost::atomic<LockState> state_;

public:
  spinlock() : state_(Unlocked) {}

  void lock()
  {
    while (state_.exchange(Locked, boost::memory_order_acquire) == Locked) {
      /* busy-wait */
    }
  }
  void unlock()
  {
    state_.store(Unlocked, boost::memory_order_release);
  }
};

boost渚嬪瓙緇欑殑 spinloc
鎬庝箞鏄繖鏍峰疄鐜扮殑
閮芥病鏈夌敤cae鎿嶄綔
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:51:20
unlock閮界洿鎺ョ敤store浜?br />vczh.Iskandar<vczh@163.com>  21:51:50
涓嶇敤compare
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:51:59
 涓哄暐
鏃犳硶鐞嗚В
vczh.Iskandar<vczh@163.com>  21:52:34
鎯寵瑙i噴濂介夯鐑?br />VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:52:40
榪樻湁鍦╓indows涓?br />boost::memory_order_acquire
榪欎釜鍙傛暟涔熸病鐢?br />璨屼技
姹俈紲炶В閲?br />榪樻湁strong鍜寃eak鐨勫尯鍒?br />璐ㄩ噺鏈澶czh綺?402740419)  21:54:46
spinlock鏈潵灝變笉鐢╟ompare鍟?br />鐩存帴swap灝辮浜?br />while (state_.swap(1) == 1);
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:56:24
浣犵湅鍋囪鐜板湪鏄痩ock鐘舵?br />boost鐨勫疄鐜版槸鏃犳潯浠跺惂lock鎹㈡垚unlock
濡傛灉鏄戶緇璴ock 浠栬繕鏄痩ock
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:58:08
鍙瑕侀伩鍏?nbsp;閲嶅叆鍚?br />lock涔嬪墠媯(gè)鏌ヤ竴涓?br />寰¤櫄鑸熷寳(314969051)  22:00:03
灝忓悍浣犵殑涔︽敹鍒版病鏈?br />璐ㄩ噺鏈澶czh綺?402740419)  22:03:17
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:58:08
鍙瑕侀伩鍏?nbsp;閲嶅叆鍚?br />lock涔嬪墠媯(gè)鏌ヤ竴涓?br />
浣犵敤閿欎簡(jiǎn)浠栦笉綆′綘
灝辨槸榪欎釜鎰忔?br />鍚屼竴涓嚎紼媗ock涓ゆ涔熶細(xì)姝婚攣
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:05:05
鍘熸潵鏄繖鏍?br />
浣嗘槸浠杔ock鐨勬椂鍊欎笉媯(gè)鏌ワ紝涔熶細(xì)瀵艱嚧涓や釜綰跨▼鍚屾椂lock鍚э紵
while (state_.exchange(Locked, boost::memory_order_acquire) == Locked) {
      /* busy-wait */
    }

璐ㄩ噺鏈澶czh綺?402740419)  22:05:18
涓嶄細(xì)鍟?br />鍋囪A榪涚▼鍏堟潵浜?jiǎn)锛宭ock鎴愬姛浜?br />VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:05:33
鎬庤兘鐞嗚В錛屾垜鐞嗚В鍜岀洿鎺ヨ祴鍊兼槸涓鏍?br />鎴戝啀鍘葷湅
璐ㄩ噺鏈澶czh綺?402740419)  22:05:40
榪欎笉鏄鍒?br />鏄痚xchange
swap
鍙︿竴涓嚎紼媏xchange灝變細(xì)鏀跺埌Locked
閭d箞鍙︿竴涓嚎紼嬪氨浼?xì)while寰幆錛岀洿鍒板師鏉ョ嚎紼嬬粰璁劇疆浜?jiǎn)Unlocked
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:06:47
Exchange current value with new_value, returning current value 

exchange鏄妸鏂板煎啓鍏ユ棫鍊艱繑鍥炰箞錛?nbsp; 涓嶆槸榪欐牱涔堬紵
鎴戞湁鐐圭悊瑙d簡(jiǎn)
璐ㄩ噺鏈澶czh綺?402740419)  22:07:46
瀵瑰晩錛屾柊鍊煎啓鍏ワ紝鏃у艱繑鍥烇紝鍘熷瓙鐨?br />VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:07:59
灝辨槸璇村啓鍏ヤ篃鏄啓鍏ョ殑lock錛?nbsp;涓嶅獎(jiǎng)鍝嶄箣鍓嶇殑lock
褰撳墠綰跨▼鎷垮埌鏃у兼鏌ユ槸涓嶆槸lock鐘舵侊紝濡傛灉鏄氨緇х畫(huà)灝濊瘯鐩村埌涓嶆槸
璐ㄩ噺鏈澶czh綺?402740419)  22:08:00
鎵浠ュ彧浼?xì)鏈変竴涓嚎紼嬭繑鍥濽nlocked錛屽彟涓涓嚎紼嬩細(xì)鏀跺埌涔嬪墠綰跨▼璁劇疆鐨凩ocked
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:08:11
 鍙楁暀浜?br />璐ㄩ噺鏈澶czh綺?402740419)  22:08:13
鎭?br />VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:08:20
鎴戣創(chuàng)鍒板崥瀹笂鍘?nbsp;



Enic 2013-03-31 21:49 鍙戣〃璇勮
]]>
国产精品久久久久久一区二区三区| 亚洲国产成人久久精品影视 | 久久只这里是精品66| 国内精品久久久久影院薰衣草| 中文字幕乱码人妻无码久久| 久久久久高潮毛片免费全部播放| 久久永久免费人妻精品下载| 99re久久精品国产首页2020| 99国内精品久久久久久久| 久久久久国产精品麻豆AR影院 | 亚洲国产精品久久久久婷婷老年| 久久久久亚洲爆乳少妇无| 精品久久久久久无码专区 | 九九久久精品无码专区| 国产午夜福利精品久久2021| 99久久精品国产一区二区蜜芽| 伊人久久大香线蕉AV一区二区| 久久国产乱子伦精品免费午夜| 伊人久久综合无码成人网| 很黄很污的网站久久mimi色| 久久精品亚洲一区二区三区浴池| 久久青青国产| 99久久精品国产一区二区| 久久99热只有频精品8| 一级a性色生活片久久无少妇一级婬片免费放 | 久久婷婷五月综合97色一本一本 | 久久人妻少妇嫩草AV蜜桃| 精品久久久久久综合日本| 久久99精品久久只有精品 | 中文成人无码精品久久久不卡| 精品一区二区久久| 久久久噜噜噜久久中文福利| 日韩人妻无码一区二区三区久久99 | 亚洲综合久久夜AV | 99久久国产综合精品五月天喷水 | 欧美牲交A欧牲交aⅴ久久| 久久精品亚洲AV久久久无码| 久久天天躁狠狠躁夜夜96流白浆 | 欧美性大战久久久久久| 久久久这里有精品| 久久人人爽人人澡人人高潮AV|