java

导航

volatile关键字是否能保证线程安全?

来源 :中华考试网 2020-10-16

  volatile关键字是否能保证线程安全?

  答案:否

  volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。

  假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1对count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时volatile关键字修改之后,还是会存在并发的情况。

  

java课程免费试听

害怕学不会?助教全程陪读,随时解惑!

担心就业?一地学习,可全国推荐就业!

分享到

相关资讯