簡體   English   中英

順序一致的內存和原子寄存器

[英]Sequentially consistent memory and atomic registers

順序一致性 (對於無數據爭用程序,SC-DRF)是現代編程語言(例如Java或C ++ 11)提供的最強的共享內存一致性模型。

在《多處理器編程的藝術》一書中,作者(M. Herlihy和N. Shavit)在整本書的大多數定理中都使用了原子配准的概念。

是否正確地說Java和C ++中具有std::memory_order seq_cst原子的volatile引用是原子寄存器(無法區別)? 如果C ++的內存模型保證標記為std::atomic的內存位置的整個空間上的順序一致性,是否有可能觀察到C ++中線性化寄存器與原子之間的區別?

對於C / C ++情況,使用memory_order_seq_cst讀取或修改的原子應該為您提供所需的一切(原子RMW操作,並保證了線性化)。

對於Java,volatile可以為您提供讀寫的線性化能力,但是任何嚴肅的並發代碼也可能也需要RMW(即比較和交換),因此,請查看java Atomic包中也可以進行比較和交換的類型(我認為這是如果不使用這些程序包或使用synced關鍵字,則無法實現比較和交換自己) http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/package-summary.html

暫無
暫無

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

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