java - 多线程中读取字段

标签 java multithreading volatile

据我了解,任何线程都可以创建要读取的变量的 thread_local 缓存。此外, volatile 字段意味着任何读取该变量的线程都将获得其实际值,并且它不依赖于线程内缓存的值。那么,每当我们要从某些线程读取一个字段时,我们是否应该将一个字段声明为 volatile 字段?

最佳答案

volatile 用于指示变量的值将被不同的线程修改。 所以,是的,如果计划从其他线程读取成员,您应该将其声明为 volatile 的。

对 volatile 变量的访问就像它包含在同步块(synchronized block)中一样。因此您不需要显式同步。

关于java - 多线程中读取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26652826/

相关文章:

Java - 具有多个值的复杂数据结构和使用文件访问数据结构

Java hashmap 在放置新条目时编辑现有条目

Java:确保线程永远不会切换上下文

java - 更新 GUI 会产生闪烁效果

vb.net - 如何编写线程安全的方法?

c++ - `volatile` 在线程之间同步变量

java - 2D volatile 数组 : will self-assignment help or do I need AtomicIntegerArray?

java - 在eclipse中连接sql 2008 R2与Java

C++ 对 volatile 对象的引用 - 原因和影响

java - 在页面上显示加载的图像