锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一本色道久久88加勒比—综合,久久久久人妻一区精品色,国产高潮国产高潮久久久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緇欑殑渚嬪瓙錛屾垜瑙夊緱鏈夐棶棰橈細(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 鍙戣〃璇勮
]]>
国产精品9999久久久久| 国产精品一区二区久久不卡| 久久91精品国产91久久小草| 久久久黄色大片| 免费精品久久久久久中文字幕| 国产精品禁18久久久夂久| 精品综合久久久久久97| 欧美国产精品久久高清| 精品一久久香蕉国产线看播放| 久久狠狠色狠狠色综合| 婷婷五月深深久久精品| 亚洲AV无码久久精品色欲| 伊人久久综合精品无码AV专区| 国内精品久久国产| 狠狠色综合网站久久久久久久高清| 久久夜色精品国产亚洲av| 久久久久国产一区二区三区| 99久久精品无码一区二区毛片| 久久精品国产亚洲综合色| 精品久久久久久无码专区| AV无码久久久久不卡蜜桃| 精品国产乱码久久久久久1区2区 | 精品久久久久久无码不卡| 亚洲日韩欧美一区久久久久我| 免费无码国产欧美久久18| 国产精品亚洲综合久久| 漂亮人妻被中出中文字幕久久 | 色欲久久久天天天综合网| 久久久免费精品re6| 热久久国产精品| 亚洲国产精品成人AV无码久久综合影院 | 久久99精品久久只有精品| 丁香五月网久久综合| 99久久精品国产综合一区| 青青久久精品国产免费看| 精品国产乱码久久久久久人妻| 久久久久久国产精品无码超碰| 狠狠色丁香久久婷婷综| 久久久久亚洲?V成人无码| 久久天天躁狠狠躁夜夜躁2014| 久久精品国产亚洲av麻豆色欲|