锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一区中文字幕久久,精品久久久久久无码专区不卡,久久国产精品-久久精品http://m.shnenglu.com/Error/category/20456.htmlzh-cnSun, 31 Mar 2013 15:09:32 GMTSun, 31 Mar 2013 15:09:32 GMT60boost::atomic 瀹炵幇 spinlockhttp://m.shnenglu.com/Error/archive/2013/03/31/198988.htmlEnicEnicSun, 31 Mar 2013 13:49:00 GMThttp://m.shnenglu.com/Error/archive/2013/03/31/198988.htmlhttp://m.shnenglu.com/Error/comments/198988.htmlhttp://m.shnenglu.com/Error/archive/2013/03/31/198988.html#Feedback0http://m.shnenglu.com/Error/comments/commentRss/198988.htmlhttp://m.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涓婄殑瀹炵幇鏄竴鏍風(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涔嬪墠媯鏌ヤ竴涓?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
鎴戣創(chuàng)鍒板崥瀹笂鍘?nbsp;



Enic 2013-03-31 21:49 鍙戣〃璇勮
]]>
久久亚洲电影| www.久久99| 久久久青草青青国产亚洲免观| 久久se精品一区二区| 亚洲一区中文字幕久久| 久久久久人妻一区二区三区| 麻豆AV一区二区三区久久| 日本精品久久久久中文字幕| 欧美性大战久久久久久| 999久久久无码国产精品| 国产免费久久精品99久久| 久久综合九色综合网站| 久久久久国产一级毛片高清版| 日本精品久久久久中文字幕| 亚洲国产成人久久笫一页| 久久精品视频网| 久久亚洲中文字幕精品一区| 久久精品国产一区二区| 热久久国产精品| 亚洲精品乱码久久久久久蜜桃图片 | 久久福利青草精品资源站| 久久亚洲2019中文字幕| 久久99精品久久久久久动态图| 久久人人爽人人爽人人片AV东京热| 久久er热视频在这里精品| 亚洲国产精品18久久久久久| 99久久99久久精品国产| 久久国产精品99久久久久久老狼 | 久久久久18| 国内精品久久久久久麻豆| 色偷偷888欧美精品久久久| 久久精品国产网红主播| 少妇人妻88久久中文字幕| 久久天天躁狠狠躁夜夜avapp| 久久综合九色欧美综合狠狠| 精品久久久久久无码人妻蜜桃| 国内精品九九久久久精品| 精品国际久久久久999波多野| 无码国产69精品久久久久网站| 国产亚洲美女精品久久久2020| 国内精品久久久久久99蜜桃|