memory-barriers 相关问题

内存屏障是一种特殊的处理器指令,它对内存访问在多处理器或多核系统中的其他处理器/内核可见的顺序施加限制。

如何在C ++ 11中实现StoreLoad障碍?

我想编写可移植的代码(Intel,ARM,PowerPC ...),它解决了经典问题的一个变体:最初:X = Y = 0线程A:X = 1 if(!Y){做某事}线程B:Y = 1 if(!X){做某事} ...

回答 1 投票 7

在访问静态初始化的变量时应该使用屏障吗?

在我的函数中,我有以下两行代码:static volatile uint64_t static_index = 0; const uint64_t index = __sync_fetch_and_add(&static_index,1,__ATOMIC_RELAXED);如您所见,...

回答 1 投票 2

使用标志在线程之间进行通信

[在互联网上,可以找到许多关于在并行编程中使用volatile关键字的争论,有时会引起矛盾的争论。关于此...的更值得信赖的讨论之一...

回答 4 投票 2


为什么Unsafe.fullFence()无法确保示例中的可见性?

我正在尝试深入探讨Java和设置2测试环境中的volatile关键字。我相信他们两个都使用x86_64并使用热点。 Java版本:1.8.0_232 CPU:AMD Ryzen 7 8Core Java ...

回答 1 投票 1


为什么`std :: atomic_thread_fence`工作

首先,我想列出我对此的一些理解,如果我错了,请纠正我。 x86中的MFENCE可以确保完整的屏障顺序一致性防止对STORE-STORE进行重新排序,...

回答 1 投票 2


为什么内存重排序在单核/处理器机器上不是问题?

请考虑以下示例,该示例取自Wikipedia,稍作改动,其中程序的步骤对应于各个处理器指令:x = 0; f = 0;线程#1:while(f == 0); ...

回答 1 投票 1

Java内存模型:单线程和多核CPU

在Java应用程序中,如果对对象状态的访问发生在同一线程上(在最简单的情况下,在单线程应用程序中,则无需进行同步以强制执行可见性/ ...

回答 1 投票 0

C ++ 11中的内存排序是否有关主内存刷新顺序?

我不确定我是否完全理解C ++ 11中原子性和内存顺序的概念(我可能全都错了)。让我们以这个单线程示例为例:int main(){std :: atomic

回答 2 投票 4

在ARM上加载和存储重新排序

我不是ARM专家,但是至少在某些ARM体系结构上,这些存储和装载不会受到重新排序吗? atomic atomic_var; int nonAtomic_var; int nonAtomic_var2; ...

回答 1 投票 0

C ++ 0x中的范围,仅保证原子或内存上的限制

C ++ 0x草案中有围栏的概念,这似乎与CPU /芯片级围栏的概念截然不同,或者说Linux内核人员对围栏的期望。问题是草案是否真的...

回答 2 投票 12


ThreadSanitizer报告的数据竞争

我正在使用启用了线程清理程序的Clang-8来编译std :: atomic ptr {nullptr};下面的代码;整型数据{0}; void producer(){std :: string * p =新的std :: string(“ Hello”); ...

回答 1 投票 2

with memory_order_relaxed如何保证典型体系结构上原子变量的总修改顺序?

据我所知,memory_order_relaxed是为了避免在特定体系结构上受更严格的排序可能需要的昂贵的内存屏障。在那种情况下,...

回答 1 投票 0

是否访问std :: unique_ptr类型的指针应用内存排序?

假设我们有一个Wrapper类型的全局对象,它的std :: unique_ptr m_pUnique成员,它不是nullptr。然后在线程1中将m_pUnique设置为nullptr,因此...

回答 1 投票 0

哪个ARM内存屏障保证两个线程中的一个会观察另一个线程写的内容?

线程A和B正在同时执行。哪种ARMv8-A内存屏障类型(如DMB,DSB)足以满足后置条件,为什么?最初x1 = 0,x2 = 0线程A | ...

回答 1 投票 1


多线程 - 了解内存障碍和易失性

我正在研究着名的'C#in a Nutshell'中的c#threading,在调查Thread.MemoryBarrier()现象时,当我偶然发现Brian为什么需要时,我被吓死了...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.