volatile关键字

来源:互联网 发布:sql提示列名无效 编辑:程序博客网 时间:2024/05/21 17:44

volatile是java语言提供的一种比synchronized更轻量级的同步机制。
它用来确保将变量的更新操作通知到其它线程;当变量被声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的。

加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性。

使用条件

  • 对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值
  • 该变量不会与其他状态变量一起纳入不变性条件中
  • 在访问变量时不需要加锁
volatile boolean asleep;while(!asleep){    ...}
0 0
原创粉丝点击