3 回答

TA貢獻1921條經(jīng)驗 獲得超9個贊
使 POJO(Plain Old Java Object)線程安全有幾個關鍵點:
使類不可變。如果添加任何實例變量,請將它們設為 final 或 volatile。
使您的 getter 和 setter 同步,即
public synchronized void setAmount(double amount) {}

TA貢獻1951條經(jīng)驗 獲得超3個贊
艾哈邁德,你的問題是模棱兩可的。
關于多線程:不清楚您所說的多線程問題是什么意思。例如,該類在多線程方面沒有任何問題,因為它是同步良好的,但是您仍然可以將 Money 對象的狀態(tài)設置為混亂,由多個線程使用它:
public class Money {
private volatile double amount;
public Money(double amount) {
super();
this.amount = amount;
}
public double getAmount() {
return amount;
}
public synchronized void setAmount(double amount) {
this.amount = amount;
}
public synchronized Money multiplyBy( int factor) {
this.amount *= factor;
return this;
}
}
添加回答
舉報