静态方法做数值相加是否存在线程安全问题 public static double sub(double d1,double d2){ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.subtract(bd2).doubleValue(); } 此方法如果在多线程的情况下是否存在安全问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Donde Voy Java 群组1号: 820853732号: 551918143号: 892387484号: 564183645号: 1571811296号: 74671714请勿重复加群...... 补充,如果存在共享的资源,如果方法内没有加锁,那是很有可能的,static也会出现线程问题! 比如说,如果一个类中,有一个静态变量。那么这个静态变量就是这个类的共享资源。再比如说,如果你要设计一个银行系统,用户的存款,就是一个共享资源。因为,当用户取钱时,要先查看他账户所剩的余额,若已经没钱了,则不能取成负的。这个例子在设计时,若不注意线程安全:则可能出现下列情况:A:剩余100元查询A,剩余100元 查询A,剩余100元 取出100元取出100元若是如此的话,系统最后会发现账户A的存款为-100元。造成此问题的原因,就是一个典型的线程完整性问题。 在 while true 中如何实现 q 退出循环? 100分求文件映射实体类解决方案 这么写 会报错 谁给解释下 谢谢 三个java超级变态逻辑循环编程题 请问内联类应该怎么设置变量 急呀!帮我看下这段代码哪里出错了。 怎样实现文本文件与二进制文件相互转换 关于JavaBean概念和用法【菜鸟上路】 求助!空指针异常! 采用那种JDBC驱动返回的结果集是可以滚动的? Java?先学c!!!!! -verbose:gc Xms这些参数有规范吗
1号: 82085373
2号: 55191814
3号: 89238748
4号: 56418364
5号: 157181129
6号: 74671714请勿重复加群......
再比如说,如果你要设计一个银行系统,用户的存款,就是一个共享资源。因为,当用户取钱时,要先查看他账户所剩的余额,若已经没钱了,则不能取成负的。这个例子在设计时,若不注意线程安全:则可能出现下列情况:
A:剩余100元
查询A,剩余100元
查询A,剩余100元
取出100元
取出100元
若是如此的话,系统最后会发现账户A的存款为-100元。造成此问题的原因,就是一个典型的线程完整性问题。