<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    無鎖隊列

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    轉載:http://hi.baidu.com/ah__fu/blog/item/9c5b1236934f84240b55a92b.html


    下面是他寫的無鎖隊列的文章:

    Michael &Scott 無鎖隊列 C++ 實現: http://www.cnblogs.com/napoleon_liu/archive/2010/08/07/1794566.html

       這個MS-Queue實現了安全的多個線程入隊,多個線程出隊。不過因為階段需要new出來,會有一點影響性能。

    GCC 之 cas和cas2:http://www.cnblogs.com/napoleon_liu/articles/2006428.html

       piboye同學實現了原子的比較交換操作。如果是GCC4以上,有福了,GCC的內置函數就有。

       原理上來說,cmpxchg8b這個指令實現了原子的比較和交還。但前面為什么要加LOCK呢?

       LOCK是一個指令的描述符,表示后續的指令在執行的時候,在內存總線上加鎖。總線鎖會導致其他幾個核在一定時鐘周期內無法訪問內存。雖然總線鎖會影響其他核的性能,但比起操作系統級別的鎖,已經輕量太多了。

        關于LOCK,這篇帖子講得很好:lock指令的秘密, http://ooooooo.blogbus.com/logs/1357939.html

    多讀多寫 無鎖 lifo 隊列:http://www.cnblogs.com/napoleon_liu/archive/2011/04/06/2006547.html

     

        再提供一個template的版本,就更完美了。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全