java volatile volatile怎么用
volatileint和int区别是什么呀?怎么用?这个多是嵌入式编程时可能会用到 。
volatile的意思是告诉编译器 , 在编程源代码时 , 对这个变量不要使用优化 。
在一般的程序设计中 , 如:
int *a int b
b = (*a) * (*a)这种情况 。
通常编译器为了减少存储器的读写时间 , 会把代码优化为:
int *a int b int c
c = *a
b = c * c
因为外部存储器的读写速度肯定赶不上内存的读写速度 , 这样可以省一次外部存储器的读取时间 , 从而提高速度 。
如果把int *a改为volatile int* a编译器就不会自动把它优化掉了 。在整个运算过程中 , 对变量*a的值读取了再次 。防止因变量*a的值在这一期间发生了改变 , 而导致程序结果的错误 。
请用中断子程序举例 , 如何正确的使用volatile这个变量的修饰符?【java volatile volatile怎么用】一个对象的值可能会在编译器的控制或检测之外被改变时 , 例如一个被系统时钟更新的变量 , 那么对象应该声明成volatile 。编译器执行的某些例行优化行为不能应用在已指定为volatile的对象上 。volatile限定符的用法同const非常相似 , 都是作为类型的附加修饰符 。volatile修饰符的主要目的是提示编译器 , 该对象的值可能在编译器未监测到的情况下被改变 。因此编译器不能武断的对引用这些对象的代码作优化处理 。
推荐阅读
- 生牛肉怎么烧才好吃 牛肉怎么做菜才好吃
- 划痕性荨麻疹怎么根治 划痕性荨麻疹
- 昆明梯古眼科医院 云南梯古眼科医院怎么样
- 开韩国烤肉店赚钱吗 韩国烤肉怎么做
- 怎么确认液压电磁阀好坏 涡轮电磁阀怎么判断坏
- 学做扣肉视频 学做扣肉
- java招聘网站 沈阳java招聘
- 怎么判断自己胃出血 胃出血自己能感觉到吗
- 怎么在手机上用读卡器 有内存卡没有读卡器怎么
- 怎么洗圆珠笔痕迹 圆珠笔芯弄到衣服上怎么洗掉