猿问

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

public class IncreaseTest {
private int value = 0;

public synchronized int increment() {
    return value++;
}

}

方法increment()是线程安全的吗?还是必须要加上关键字:volatile

private volatile int value = 0;

呼如林
浏览 387回答 7
7回答

烙印99

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

互换的青春

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

森林海

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

相关分类

Java
我要回答