memory-barriers

memory-barriers

文章 0 浏览 3

是否可以在运行时基于 CPU 架构编写条件代码?

我正在使用 .Net 4.5(预览版...4 对于这个问题来说就可以了)。我正在做线程工作。 根据我的研究,我知道 x86 CPU 具有强大的内存模型,这意味着写入…

烙印 2024-12-11 10:13:23 1 0

在 OpenCL 中,mem_fence() 与 Barrier() 相比有何作用?

与barrier()(我想我理解)不同,mem_fence()不会影响工作组中的所有项目。 OpenCL 规范规定(第 6.11.10 节),对于 mem_fence(): 命令加载和存储执…

木有鱼丸 2024-12-08 04:52:12 1 0

内存模型排序和可见性?

我尝试寻找有关此问题的详细信息,我什至阅读了有关互斥体和原子的标准...但我仍然无法理解 C++11 内存模型可见性保证。 据我了解,互斥体除了互斥之…

你是年少的欢喜 2024-12-05 07:47:09 1 0

无序执行和内存栅栏

我知道现代 CPU 可能会无序执行,但是它们总是按顺序收回结果,如维基百科所述。 “乱序处理器用其他准备好的指令及时填充这些“槽”,然后在最后对结…

温柔女人霸气范 2024-12-03 10:34:04 3 0

尝试理解 Thread.MemoryBarrier() 和上下文切换之间的关系

由于看起来上下文切换可能发生在指令执行的任何时候,我现在想知道为什么代码“部分有问题”(这两条指令)有意义,如果上下文切换可以在任何指令之间…

我为君王 2024-12-02 11:29:07 0 0

互斥锁功能在没有 volatile 的情况下是否足够?

我和一位同事为 x86、x64、Itanium、PowerPC 和其他已有 10 年历史的服务器 CPU 上运行的各种平台编写软件。 我们刚刚讨论了诸如 pthread_mutex_lock(…

恍梦境° 2024-11-26 18:02:34 3 0

自旋锁总是需要内存屏障吗?在内存屏障上旋转是否昂贵?

我编写了一些可以在本地正常工作的无锁代码 在大多数情况下读取。 内存读取上的本地旋转是否必然意味着我 必须始终在旋转之前插入内存屏障 读? (为…

如梦 2024-11-25 20:43:59 1 0

x86 上的竞争条件

有人可以解释一下这个说法: shared variables x = 0, y = 0 Core 1 Core 2 x = 1; y = 1; r1 = y; r2 = x; x86 处理器上怎么可能有 r1 == 0 和 r2 ==…

吃素的狼 2024-11-19 05:29:53 2 0

内存屏障生成器

阅读 Joseph Albahari 的线程教程,提到以下内容作为内存屏障的生成器: C# 的 lock 语句 (Monitor.Enter/Monitor.Exit) Interlocked 类上的所有方法 …

人生戏 2024-11-18 21:33:16 4 0

锁助手的线程安全使用(关于内存屏障)

我所说的锁定助手指的是一次性对象,可以通过 using 语句来实现锁定。例如,考虑 SyncLock 类的典型用法">Jon Skeet 的 MiscUtil: public class Exam…

源来凯始玺欢你 2024-11-18 04:46:01 2 0

java中的易失性变量和内存屏障

我有一个由链接节点组成的数据结构。您可以将其视为一个简单的 LinkedList。列表的每个节点都包含一些值和指向另一个节点的下一个字段,如果它是最后…

司马昭之心 2024-11-17 12:50:21 3 0

非阻塞同步(MemoryBarrier)

我修改了非阻塞同步上给出的程序如下: class DemoProg { int _answer; bool _complete; public void StartDemo() { Thread t1 = new Thread(A); Thre…

缺⑴份安定 2024-11-04 07:28:45 3 0

C++0x 中的栅栏,一般只保证原子或内存

C++0x 草案有一个栅栏的概念,似乎与 CPU/芯片级别的栅栏概念非常不同,或者说一下 Linux 内核人员对栅栏的期望栅栏.问题是草案是否真的暗示了一种极…

已下线请稍等 2024-10-30 09:46:58 7 0

编译器和CPU重新排序

我有以下这种情况。 volatile double val1 = 10.0; volatile double val2 = 20.0; double SetValues(double d1, double d2) { double ret = d1-d2; In…

冷了相思 2024-10-21 05:05:24 6 0

取消引用字段时是否需要内存屏障(.net x86 或 x64)?

在如下代码中,如果 Proc1 和 Proc2 在不同的处理器上同时执行,ThingVal2 是否有可能获得 5 以外的值(例如零)? Class SimpleThing Public X As In…

池予 2024-10-12 13:11:43 9 0
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文