美文网首页
Java并发之Volatile

Java并发之Volatile

作者: 12313凯皇 | 来源:发表于2019-04-26 16:52 被阅读0次

    VolatileJava的一个关键字,Volatile所修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象。
    Volatile不会让线程阻塞,响应速度比synchronized快。

    特性

    Volatile具有可见性、有序性,但不具备原子性。为了更好的理解,下面先分别介绍下这三种特性:

    • 原子性:指多个操作不存在只执行一部分的情况,如果全部执行完成那么就没什么问题,但是如果只执行了一部分,那么之前所做的都需要进行撤销。(例如事务)
    • 可见性:当多个线程访问同一个变量x时,线程1修改了变量x的值,线程2线程3...能够立刻读取到线程1修改后的值。
    • 有序性:即程序执行时按照代码书写的先后顺序执行。

    适用场景

    • 适用于对变量的写操作不依赖于当前值,对变量的读取操作不依赖于非volatile变量。
    • 适用于读多写少的场景。
    • 可用作状态标志。

    相关文章

      网友评论

          本文标题:Java并发之Volatile

          本文链接:https://www.haomeiwen.com/subject/mrjqnqtx.html