Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
“挥发性”关键字的用途是什么?
我读过一些关于volatile关键字 但我无法弄清楚它的正确用法 你能告诉我它在 C 和 Java 中的用途吗 考虑这个例子 int i 5 System out println i 编译器可能会对此进行优化 只打印 5 如下所示 Syst
c
Java
volatile
为什么易失性不能正常工作
今天我正在使用以下命令创建一项超时作业TimerTask但遇到了一个新问题 我有一个static volatile boolean多变的flag 我的理解是 一旦这个变量的值发生变化 所有正在运行的都会通知它thread 但是当我运行这个程
Java
Multithreading
static
volatile
为什么 Unsafe.fullFence() 不能确保我的示例中的可见性?
我正在尝试深入研究volatileJava 中的关键字和设置 2 测试环境 我相信它们都使用 x86 64 并使用热点 Java version 1 8 0 232 CPU AMD Ryzen 7 8Core Java version 1
Java
x86
volatile
jvmhotspot
memorybarriers
易失性、互锁性、锁定性
假设一个类有一个public int counter由多个线程访问的字段 这int仅递增或递减 要增加此字段 应使用哪种方法 为什么 lock this locker this counter Interlocked Increment r
c
Multithreading
locking
volatile
Interlocked
我应该使用同步方法来改变该字段吗?
随着接下来的课程 This class should be thread safe class BankAccount private long balance Should it be volatile synchronized void
Java
Multithreading
Synchronized
volatile
一java内存刷新易失性:一个好的程序设计?
这是与此相关的问题 java 在一个变量上使用 易失性 VS 每个变量 我有一个或多个不同的对象 我想改变其中的某些状态 然后我想让该状态对其他线程可见 出于性能原因 我不想使该对象中的每个成员变量都是易失性的 有时我想在单线程应用程序中使
Java
Multithreading
DesignPatterns
concurrency
volatile
如果线程 B 希望看到线程 A 所做的更改,是否只能对 volatile 变量进行最后的更改,而不是对所有变量进行更改?
我看过这个答案 并说明了如何 在新的内存模型下 当线程A写入易失性 变量 V 线程 B 从 V 读取任何变量值 现在保证在写入 V 时对 A 可见 对 B 可见 因此 给出示例 public class Main static int va
Java
Multithreading
volatile
javamemorymodel
memoryvisibility
包装函数的内联汇编器由于某种原因不起作用
我正在尝试为 read 系统调用编写一个包装函数 使用 asm 易失性 但它不会工作 因为 res 不会改变它的值 这是代码 ssize t my read int fd void buf size t count ssize t res
c
Assembly
volatile
systemcalls
什么时候需要在 ISR 中使用 volatile?
我正在制作嵌入式固件 初始化后的所有事情都发生在 ISR 中 我有它们之间共享的变量 我想知道在什么情况下它们需要是易失性的 我从不阻塞 等待另一个 ISR 的变化 在不使用易失性的情况下 什么时候可以确定实际内存已被读取或写入 每个 IS
c
volatile
interrupthandling
c# - 易失性关键字使用与锁定
我在不确定是否有必要的地方使用了 volatile 我很确定在我的情况下锁是多余的 阅读这篇文章 Eric Lippert 评论 让我对 volatile 的使用感到焦虑 C 中什么时候应该使用 volatile 关键字 我使用 volat
c
Multithreading
performance
Dispatcher
volatile
在 boost::shared_ptr 运算符 bool() 上旋转时需要 C++ 易失性吗? [复制]
这个问题在这里已经有答案了 可能的重复 何时在多线程中使用 易失性 我有两个线程引用相同的内容boost shared ptr boost shared ptr
c
Multithreading
boost
sharedptr
volatile
Java 不稳定的并发性
好的 我刚刚读了这个问题你在 Java 中使用过 volatile 关键字吗 并且我使用易失性变量来停止循环 我也看过这个参考资料 http www javamex com tutorials synchronization volatil
Java
concurrency
volatile
易失性和编译器优化
如果关闭编译器优化 即 gcc o0 可以说 易失性 关键字没有区别吗 我制作了一些示例 C 程序 并且仅当打开编译器优化时才在生成的汇编代码中看到易失性和非易失性之间的差异 即 gcc o1 不 这样的说法没有任何依据 volatile具
c
compileroptimization
volatile
如何理解读内存屏障和易失性
有些语言提供了volatile修饰符被描述为在读取支持变量的内存之前执行 读内存屏障 读内存屏障通常被描述为一种确保 CPU 在执行屏障之后请求的读取之前已执行屏障之前请求的读取的方法 然而 使用这个定义 似乎仍然可以读取过时的值 换句话说
Multithreading
volatile
memorybarriers
使用双重检查锁定实现单例时,我们是否需要 易失性
假设我们使用双重检查锁来实现单例模式 private static Singleton instance private static Object lock new Object public static Singleton getIn
Java
singleton
Synchronized
volatile
C++ 易失性关键字是否引入了内存栅栏?
我明白那个volatile通知编译器该值可能会更改 但是为了完成此功能 编译器是否需要引入内存栅栏才能使其工作 根据我的理解 对易失性对象的操作顺序不能重新排序 必须保留 这似乎意味着一些内存栅栏是必要的 并且没有真正解决这个问题的方法 我
c
Multithreading
C11
volatile
为什么像“volatile int * p”这样的指向易失性的指针有用?
volatile就是告诉编译器不要优化引用 这样每次读 写都不会使用寄存器中存储的值 而是进行真正的内存访问 我可以理解它对于某些普通变量很有用 但不明白如何volatile影响指针 volatile int p some addr int
c
pointers
volatile
多线程程序中的 std::atomic
memory_order_relaxed VS 易失性 sig_atomic_t
Does volatile sig atomic t提供任何内存顺序保证吗 例如 如果我只需要加载 存储一个整数可以使用吗 例如 这里 volatile sig atomic t x 0 void f std thread t x 1 wh
c
Multithreading
volatile
memorymodel
stdatomic
中断的易失性与内存屏障
Let x and y是主代码和中断代码之间共享的变量 我的想法volatile的一点是 它只是并且始终需要在主代码中使用的硬件变量和中断变量 每次使用x and y通过禁用中断来保证主代码中的原子性 Do x and y确实需要volat
c
interrupt
atomic
volatile
memorybarriers
什么时候可以完全优化掉 volatile 变量?
考虑这个代码示例 int main void volatile int a static volatile int b volatile int c c 20 static volatile int d d 30 volatile int
c
languagelawyer
volatile
«
1 ...
4
5
6
7
8
9
10
»