volatile关键字
关于volatile关键字 volatile是Java提供的一种轻量级的同步机制。Java?语言包含两种内在的同步机制:同步块(或方法)和?volatile?变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile?变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错,比synchronize更轻量级:在访问volatile变量时不会执行加锁操作,因此不会线程阻塞. ? ? ?a. 基本类型的读取和赋值操作,且赋值必须是数字赋值给变量,变量之间的相互赋值不是原子性操作。 ??定义:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 ?定义:即程序执行的顺序按照代码的先后顺序执行。 原子性 volatile的特性:
使用volatile关键字修饰共享变量便可以禁止这种重排序。若用volatile修饰共享变量,在编译时,会在指令序列中插入内存屏障来禁止特定类型的处理器重排序,volatile禁止指令重排序也有一些规则: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |