美文网首页java并发
volatile类型变量

volatile类型变量

作者: 自由自在_7564 | 来源:发表于2019-12-20 18:25 被阅读0次

volatile是java虚拟机提供的最轻量级的同步机制。

volatile的两种特性:可见性和禁止指令重排序优化(有序性)

一、可见性指当一条线程修改了这个变量的值,新值对于其他线程可以立即得知。

voltile只能保证可见性,且必须满足以下两个条件:

1、运算结果并不依赖当前值,或者能够确保只有单一线程修改变量的值

2、变量不需要与其他的状态变量共同参与不变约束

二、禁止指令重排序优化

普通变量仅仅保证在该方法的执行过程中所有依赖赋值结果的地方都能获取到正确的结果,而不能保证变量赋值操作的顺序与程序执行顺序一致

也就是java 内存模型中“线程内表现为串行的语义”

相关文章

  • volatile类型变量

    volatile是java虚拟机提供的最轻量级的同步机制。 volatile的两种特性:可见性和禁止指令重排序优化...

  • 关键字volatile

    一. volatile是什么? volatile关键字是一种类型修饰符,对于用它声明的类型变量,编译器对访问该变量...

  • 技术问 - volatile有什么作用

    volatile 是一种类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量,被volatile类型定义的变量...

  • 【同步】

    java中的volatile和synchronized 一个volatile类型的变量不允许线程从主内存中将变量的...

  • Volatile

    volatile用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注...

  • 多线程并发相关的几个重要基础知识点解析

    问:volatile 变量和 atomic 变量有什么不同? 答:volatile 变量和 atomic 变量看起...

  • Thread相关学习之八-Thread.java中的主要方法(i

    interrupt 线程中维护了一个volatile变量blocker,为Interruptible类型,这是个接...

  • volatile的作用

    Volatile的介绍: 使用volatile的原因: 用在多线程,目的同步变量 Volatile变量相对于锁更简...

  • JVM 深入理解(四)内存模型 下

    volatile volatile变量自身具有下列特性: 可见性。对一个volatile变量的读,总是能看到(任意...

  • Java之多线程和并发

    1.volatile变量 1.1 可见性 volatile修饰符保证volatile变量对所有线程可见,当一个线程...

网友评论

    本文标题:volatile类型变量

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