【发布时间】:2013-12-29 06:20:53
【问题描述】:
可能是一个非常愚蠢的问题。只是想确认一下我的理解。
class Test
{
private volatile String id;
public void setID(String id)
{
this.id = id;
}
public String getID()
{
return id;
}
}
假设上述类的对象可以被多个线程访问。我的理解是,在像上面这样简单的 getter 和 setter 的情况下(进行简单的初始化),我不需要使这些方法同步,对吗?
我想 volatile 是需要的,否则 id 的值可能会在不同的线程中过时。
那么,如果我们没有同步这些方法,任何人都可以看到任何问题吗?
【问题讨论】:
-
也许这个问题对你有帮助:*.com/questions/15828067/…
-
不,你也必须在你的方法中同步它
-
这需要对 volatile 关键字进行同步,没有它,如果 POJO 不是单例或通过所有线程共享,则不需要同步。
标签: java multithreading