zoukankan      html  css  js  c++  java
  • volatile关键字

    多线程中如果两个线程同时使用第三方的共享数据,并且进行修改的话,那么就有可能出现数据更新不及时的问题原因是:

    假设线程A和线程B共享第三方数据count:

    线程A和线程B中都会开辟一段用来保存count值得变量副本,因为这样执行更快:

    线程每次修改值都会:

    • 先将副本中的值修改
    • 然后赋值给副本
    • 最后更新共享数据中的值

    所以在多线程的操作中,当A线程修改了共享数据时,B线程没有及时获取到最新的值,如果还在使用原先的值,就会出现问题 ,共享数据如果不做处理则会出现共享数据值更新缓慢的错误

    而volatile关键字的作用是:

    强制线程在每次使用被volatile关键字修饰的共享变量时,都会看一下共享数据的最新值。

    (但是volatile关键字不能保证原子性)

    迎风少年
  • 相关阅读:
    第七周作业
    第六周作业
    第四周作业
    第三次作业
    第二次作业
    最后一次作业-- 总结报告
    第十四,十五周作业
    第七周作业
    第六周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13519652.html
Copyright © 2011-2022 走看看