我有一个java类:
class Card {
private static Card instance = new Card();
public int value:
private Card() {}
public static Card sharedInstange() {
return instance;
}
}
此类模拟一个可以由不同线程访问的共享实例。因此,实例变量值必须同步,以便一次只有一个线程可以读取和写入它。
如何实现我的Card类的实例变量一次只能被一个线程访问?
编辑:这是具有 getter 和 setter 的同一个类。
class Card {
private static Card instance = new Card();
private int value:
private Card() {}
public static Card sharedInstange() {
return instance;
}
public int getValue() { return value; }
public void setValue(int v) { this.value = v; }
}
最佳答案
使其具有 volatile ,并创建不带synchronized关键字的getter/setter。
或者只是将其设为AtomicInteger
。
关于java - 使实例同时只能由一个线程访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318027/