锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久中文字幕导航,亚洲人成啪啪网站,一区二区三区欧美亚洲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緇欑殑渚嬪瓙錛屾垜瑙夊緱鏈夐棶棰橈細

#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() {
// 榪欓噷閮界洿鎺ュ啓涓嶅仛媯鏌ヤ簡錛屾洿鍔犻毦浠ョ悊瑙? state_.store(Unlocked, boost::memory_order_release); } };

鏈夊彲鑳芥槸鎴戜笉鐞嗚В鍚庨潰鐨勫唴瀛樿闂弬鏁扮殑鎰忎箟錛岀粰涓嬫垜鑷繁鐨勫疄鐜幫細
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.鐨勬剰涔夛紝涓嶈繃鐪嬩簡浠g爜錛屽湪win32鐨勫疄鐜頒笂錛寃eak鏄皟鐢ㄤ簡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涓婄殑瀹炵幇鏄竴鏍風殑
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涔嬪墠媯鏌ヤ竴涓?br />寰¤櫄鑸熷寳(314969051)  22:00:03
灝忓悍浣犵殑涔︽敹鍒版病鏈?br />璐ㄩ噺鏈澶czh綺?402740419)  22:03:17
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  21:58:08
鍙瑕侀伩鍏?nbsp;閲嶅叆鍚?br />lock涔嬪墠媯鏌ヤ竴涓?br />
浣犵敤閿欎簡浠栦笉綆′綘
灝辨槸榪欎釜鎰忔?br />鍚屼竴涓嚎紼媗ock涓ゆ涔熶細姝婚攣
VCZH.綺変笣鏁扮粍[0]<errorcpp@qq.com>  22:05:05
鍘熸潵鏄繖鏍?br />
浣嗘槸浠杔ock鐨勬椂鍊欎笉媯鏌ワ紝涔熶細瀵艱嚧涓や釜綰跨▼鍚屾椂lock鍚э紵
while (state_.exchange(Locked, boost::memory_order_acquire) == Locked) {
      /* busy-wait */
    }

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

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



Enic 2013-03-31 21:49 鍙戣〃璇勮
]]>
波多野结衣久久精品| 精品久久久久久无码人妻热 | 久久国产精品一区二区| 嫩草影院久久国产精品| 久久夜色撩人精品国产| 日本欧美久久久久免费播放网| 久久久久夜夜夜精品国产| 青青草原综合久久大伊人| 色综合久久88色综合天天| 狠狠色丁香久久婷婷综合_中| 精品一区二区久久久久久久网站| 久久国产成人| 国产成人综合久久综合| 久久久久久久波多野结衣高潮| 99热都是精品久久久久久| 亚洲国产精品成人久久| 日产精品久久久久久久| 精品国产婷婷久久久| 久久99国产综合精品女同| 国产精品久久久久久久人人看| 久久免费线看线看| 丁香久久婷婷国产午夜视频| 伊人久久久AV老熟妇色| 麻豆成人久久精品二区三区免费| 亚洲AV无码久久| 一级做a爱片久久毛片| 国产亚州精品女人久久久久久 | 9191精品国产免费久久| 国产成人精品久久免费动漫| 国产女人aaa级久久久级| 久久婷婷午色综合夜啪| 69SEX久久精品国产麻豆| 久久99精品九九九久久婷婷| 人妻精品久久无码区| 成人精品一区二区久久久| 中文字幕成人精品久久不卡| 2020久久精品亚洲热综合一本| 国产精品无码久久久久久| 亚洲人成网亚洲欧洲无码久久| 青青青青久久精品国产| 国产午夜精品理论片久久影视 |