java

当前位置:中华考试网 >> java >> 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课程免费试听

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

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

责编:yangliu1997
  • 会计考试
  • 建筑工程
  • 职业资格
  • 医药考试
  • 外语考试
  • 学历考试