so true

          心懷未來(lái),開創(chuàng)未來(lái)!
          隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
          數(shù)據(jù)加載中……

          c++原子操作

          1. __sync_bool_compare_and_swap系列是gcc最早內(nèi)置的;
          2. __atomic_compare_exchange_n系列是新版gcc內(nèi)置的,支持6種memory order;
          3. std::atomic之類的是stl的封裝;
          4. 6種mem order,https://www.zhihu.com/question/24301047里講得不錯(cuò),概括下:
          memory_order_seq_cst最嚴(yán),memory_order_relaxed最松,通常是用acquire(load時(shí))/release(store時(shí))模式,在該大模式下:
          a. 通常是讀用memory_order_acquire,寫用memory_order_release;
          b. 如果只是針對(duì)單個(gè)變量且該變量沒(méi)有依賴的變量,acquire可以弱化為consume;
          c. 如果不想?yún)^(qū)分什么單變量多變量或讀寫狀態(tài),簡(jiǎn)單點(diǎn)統(tǒng)一用memory_order_acq_rel。

          posted on 2020-06-28 17:19 so true 閱讀(222) 評(píng)論(0)  編輯  收藏 所屬分類: C&C++

          主站蜘蛛池模板: 临沂市| 呼图壁县| 秦皇岛市| 浮山县| 房山区| 根河市| 湘潭市| 晴隆县| 云龙县| 丰镇市| 望奎县| 金湖县| 闸北区| 孟津县| 枣阳市| 武义县| 汪清县| 泾川县| 黔江区| 济南市| 棋牌| 迁安市| 屯昌县| 济宁市| 包头市| 皮山县| 太湖县| 元谋县| 呼玛县| 洪江市| 晋城| 潢川县| 广汉市| 静海县| 萝北县| 滨州市| 渝中区| 安龙县| 什邡市| 宁远县| 蓬安县|