91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中為什么不要使用無鎖編程方式

發布時間:2021-11-25 15:45:13 來源:億速云 閱讀:398 作者:iii 欄目:大數據

這篇文章主要介紹“C++中為什么不要使用無鎖編程方式”,在日常操作中,相信很多人在C++中為什么不要使用無鎖編程方式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++中為什么不要使用無鎖編程方式”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

CP.100:不要使用無鎖編程方式,除非絕對必要

Reason(原因)

It's error-prone and requires expert level knowledge of language features, machine architecture, and data structures.

這種方式容易出錯,需要在語言功能,機器架構,數據結構等方面具有專家級的知識。

Example, bad(反面示例)

extern atomic<Link*> head;        // the shared head of a linked list

Link* nh = new Link(data, nullptr);    // make a link ready for insertion
Link* h = head.load();                 // read the shared head of the list

do {
   if (h->data <= data) break;        // if so, insert elsewhere
   nh->next = h;                      // next element is the previous head
} while (!head.compare_exchange_weak(h, nh));    // write nh to head or to h

Spot the bug. It would be really hard to find through testing. Read up on the ABA problem.

找到bug。這里的問題真的很難通過測試發現。好好研究一下ABA問題。

Exception(例外)

Atomic variables can be used simply and safely, as long as you are using the sequentially consistent memory model (memory_order_seq_cst), which is the default.

原子變量可以簡單并安全地使用,只要你使用的是順序一致內存模型(memory_order_seq_cst),這是默認的前提。

Note(注意)

Higher-level concurrency mechanisms, such as threads and mutexes are implemented using lock-free programming.

Alternative: Use lock-free data structures implemented by others as part of some library.

高級的并發機制,例如線程和互斥鎖是通過無鎖編程實現的。

其他選項:使用由其他人實現的作為某些庫一部分存在的無鎖編程數據結構。

到此,關于“C++中為什么不要使用無鎖編程方式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

大渡口区| 罗甸县| 航空| 绩溪县| 华安县| 新巴尔虎右旗| 昔阳县| 突泉县| 永善县| 浠水县| 台中市| 开封市| 乌鲁木齐县| 揭东县| 祁连县| 牙克石市| 鹤峰县| 蒙山县| 疏勒县| 江阴市| 石首市| 永兴县| 十堰市| 兴山县| 安福县| 新巴尔虎右旗| 莱芜市| 奉新县| 安泽县| 灵山县| 东山县| 临泽县| 正阳县| 榆林市| 文登市| 丰台区| 卫辉市| 策勒县| 中牟县| 丹巴县| 青铜峡市|