java - 多线程、性能和精度考虑
问题描述
考虑以下类:
public class Money {
private double amount;
public Money(double amount) {
super();
this.amount = amount;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public Money multiplyBy( int factor) {
this.amount *= factor;
return this;
}
}
我可以采取哪些预防措施来确保此类在多线程方面没有任何问题。有良好的表现。同时确保货币精度不会成为问题
解决方案
有几个关键点可以使 POJO(普通旧 Java 对象)线程安全:
使类不可变。如果添加任何实例变量,请将它们设为 final 或 volatile。
使您的 getter 和 setter 同步,即
public synchronized void setAmount(double amount) {}
推荐阅读
- envoyproxy - 从 Envoy 代理响应中删除“server”标头
- html - 从更新表单 django 中获取选择选项
- api - 使用请求 api 优化此循环
- android - 为什么在回调中调用 ViewModel 时会发生重组?
- c++ - 为什么 *int 与 go 中的 []int 不同
- python-3.x - 向函数添加可选参数
- c++ - c ++高斯随机数生成器不断生成相同的序列
- asp.net - 为什么每个 IIS 响应的末尾(作为最后一个字节)可能会有一个 UTF-8 BOM?
- reactjs - Excel文件数据未附加在数组反应JS中
- c++ - 如何从函数返回范围视图?