Java之volatile

先看一个例子:

Java之volatile_第1张图片
volatile的一个例子

虽然在变量numb上使用了volatile,但是得出的结果是不固定的,这说明,volatile是一个非线程安全的关键字



volatile关键字的应用场景:

    由于例子已经说明volatile在竞争性的写操作上是线程不安全的(因为每个线程都是从存储volatile的变量去取值,但是++操作在汇编中实际上有4步操作,那么多个线程就不会保证同步了。多线程还是只有用Lock或synchronized),那么只有当多线程只针对volatile变量做判断的场景下才有效。例如:

Java之volatile_第2张图片
volatile有效的应用场景

你可能感兴趣的:(Java之volatile)