簡體   English   中英

原子操作的最低要求

[英]The least requirement for the atomic operation

我只是想收集一些有關原子操作需求的基於證據的信息。

例如(也許不正確,只是一些例子)

  1. 在x86_64上,當您對long的條目大小進行寫入或讀取並按long對齊時,由於balabalabala ...

  2. 在x86_64上,當您使用gcc 原子基元寫入或讀取字節時,對這些字節的操作將保持原子狀態。

希望得到和幫助:)

專業C ++引用:

對簡單標量變量的簡單賦值通常不需要同步。 例如,在x86上,在硬件級別上原子地處理32位對齊值,並且單個事務不需要顯式同步。 例如,將布爾值設置為false以停止線程不需要同步,但是對於任何給定的op來說,像++,-或op =這樣的操作都需要同步。

這並不能回答您所有的問題,但這是您要找的部分嗎?

如果您要尋找芯片級的保證,則需要查閱這些芯片的技術手冊。 在Intel上,請查看Software開發人員手冊 ,其中包含有關內存排序的完整信息。 在這種情況下,atomic的定義包括內存排序保證。 基本保證在“卷3:8.2內存排序”中列出,其中一些功能另外被標記為以“原子”方式運行。

注意完整的細節很復雜,需要對芯片有詳細的了解。 這就是C和C ++現在將它們包裝在更高級別的保證中的原因。 您當然可以查閱這些各自的標准以查看其保證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM