为了账号安全,请及时绑定邮箱和手机立即绑定

这样的Java代码是线程安全的吗?

这样的Java代码是线程安全的吗?

呼如林 2019-03-14 14:15:37
public class IncreaseTest {private int value = 0;public synchronized int increment() {     return value++; }}方法increment()是线程安全的吗?还是必须要加上关键字:volatileprivate volatile int value = 0;
查看完整描述

7 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

如果可以通过反射访问该字段,则不安全。
如果所有的访问都是通过increment方法访问,则是线程安全的。
sync关键字限制了同一时刻只有一个线程可以访问该方法。


查看完整回答
反对 回复 2019-04-27
?
互换的青春

TA贡献1797条经验 获得超6个赞

是线程安全的。value是private类型。只能通过increment方法操作,并且increment已经做了同步


查看完整回答
反对 回复 2019-04-27
?
森林海

TA贡献2011条经验 获得超2个赞

不是线程安全的,同步的关键字在只能提高安全级别,不能绝对完全解决同步问题,曾经就在项目中碰到了这类问题,在同步下面居然能实例化两个单例


查看完整回答
反对 回复 2019-04-27
  • 7 回答
  • 0 关注
  • 380 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信