volatile 相关问题

Volatile是一个限定符,用于定义“可以自行更改”的数据存储区域(对象,字段,变量,参数),从而禁止某些代码生成器优化。在某些但不是所有识别此限定符的语言中,对此类数据的访问是线程安全的。




挥发性或锁

我有一个带有背景字段的属性,我想使线程安全(获取并设置)。 除了设置和返回外,GET和SET方法没有逻辑。 我认为有两种方法可以用来capsule

回答 1 投票 0


使用 Executors.newSingleThreadExecutor() 限制 Java 线程

问题是关于内存可见性的。我对像下面这样的程序是否是线程安全的有一些疑问: 类 MyApi { private val singleThreadExecutor = 执行器。

回答 1 投票 0

一切都不稳定

我正在创建这个多线程 C++ 程序,并在发布模式下编译时,我发现了某种错误(对象仍然为空),即它看起来像缺少易失性标记。 但问题是,因为

回答 1 投票 0

易失变量和其他变量

以下内容来自经典并发实践: 当线程A写入易失性变量并且随后线程B写入时 读取同一个变量,所有变量的值

回答 2 投票 0

C 中非易失性变量的限制

我想了解编译器对 C 中的非易失性变量有哪些限制(如果有的话)。 我不确定这是否属实,但有人告诉我,如果您有以下...

回答 1 投票 0

检测单个语句引发的潜在 FPU 条件

我正在使用 fenv 来查找产生溢出、下溢、不精确结果等的语句。 但是,我是否正确地假设编译器可以对我的代码重新排序而不实现......

回答 1 投票 0

所有 C# 都写“易失性”吗?

我正在研究并发编程的 C# 内存模型。 MSDN 有一篇关于 C# 内存模型的文章。 它解释了 volatile write 具有释放语义,即 其他处理器会看到...

回答 1 投票 0

通过具有易失性限定类型的强制转换进行易失性访问

我见过类似下面的构造来写入内存映射 I/O。 *((易失性无符号整数*)0xDEADBEEF) = 0x00; 但这保证是易失性访问吗?1 我开始思考这个问题...

回答 2 投票 0

如何欺骗编译器优化内存读取?

我听说过编译器优化。 例如,当: 而(我的布尔) doStuff(); 编译器知道您不会在 while 循环内修改 myBool,它只读取 myBool 一次并且不会检查...

回答 3 投票 0

同时访问易失性是数据竞争吗?尽管它在实践中似乎有效?

易失性全局x = 0; 读者(){ 而 (x == 0) {} 打印(“世界 ”); } 作家(){ 打印(“你好,”) x = 1; } 线程(读者); 线程(作者); https://en.wikipedia.or...

回答 2 投票 0

这样的用法,挥发性好吗?

假设我在这样的循环中检查变量。 而(变量) ; 这里,如果程序是多线程的并且var被多个线程访问,则必须将var声明为易失性。这是众所周知的事实......

回答 2 投票 0

这个函数返回什么

如果在函数中传递了一个易失性变量,如下所示...... 这个函数是否总是返回一个平方值,我的意思是有时该值可以改变,因为有一个易失性变量

回答 3 投票 0

无限循环条件变量是否应该始终声明为 volatile?

考虑一下,这种类型的代码, while(!cond) ; 如果 cond 没有声明为 volatile,编译器可以通过将其缓存在寄存器中来优化它。在这种情况下,即使在 co...

回答 1 投票 0

具有易失性参数功能的 LLVM kCFI 消毒器

这是最小的可重现示例: // my_func.h typedef 易失性结构 { 整数a; my_vdata_t; 类型定义结构{ 整数a; 我的数据t; extern void (*vfunc)(my_vdata_t* 数据); 外部声音...

回答 1 投票 0

对共享数据的线程安全访问 - 读/写实际上发生并且不会发生重新排序

从这里:https://stackoverflow.com/a/2485177/462608 对于共享数据的线程安全访问,我们需要保证 读/写实际上发生了(编译器不会只是...

回答 2 投票 0

在 C# 中跨多个线程的方法调用中仅执行一次函数

我有一个来自在运行时加载的程序集的类,该类是使用跨多个线程(使用通道)的反射(因此使用无参数构造函数)实例化的。每个线程

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.