有个单例类,其中有一个表示时间戳的字段,并发访问判断时间戳是否过期,过期则更新时间戳。 请问这个字段存在线程安全问题吗?需要使用volatile关键字保证可见性吗?需要使用锁来保证线程安全吗? 做了大量的测试,在不使用volatile关键字时,如果有一个线程更新了该字段的值,其他线程可以获取最新值,按照java内存模型的理论,每个线程在自己的工作内存中都有一份主内存变量的拷贝,更新操作应该是在自己的工作内存中,其他线程又如何能得到更新后的值?还是该线程结束后,要强制写回主内存导致可见?还是由于单例对象的原因? 这里需要使用volatile关键字吗? 求解惑