java - 更改 volatile 字段是否会更新对象?

标签 java concurrency volatile

我有以下类(class)

public class Guardian {
    volatile String response;
    private Future future;
    private Long time;
}

如果响应被线程 A 修改,那么线程 B 会通过以下方式看到响应的新值:

Guardian guardian = requestManager.getGuardian();
String response = guardian.getResponse();

最佳答案

假设您知道字符串是不可变的那么是的,volatile 关键字保证线程 B 将获得 response 的最后一个值,无论在哪个确实发生的线程。

关于java - 更改 volatile 字段是否会更新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46197616/

相关文章:

java - 将 JDBC 连接到 Sql Server 2012 时出现 SSLv3 错误?

java - 从头开始实现ADT链表

java - 为什么 Object 类的 clone() 方法提供对象的深拷贝?

java - 我如何测量有多少线程正在执行一段代码?

java - 在测试中用 ExecutorService 替换 ManagedExecutorService

java - Java多线程并发问题

java 和 C++11 volatile

c++ - 为什么 volatile 会产生未定义的行为

excel - 应用程序从 VBA 计算 - 忽略 volatile 函数

java - 写一个 public int compareTo() 方法 java