现在的位置: 首页 > 综合 > 正文

java不常用修饰–volatile

2013年10月22日 ⁄ 综合 ⁄ 共 633字 ⁄ 字号 评论关闭

/**
 * 
 * 开销较低的读写锁
 * @author mapeijie
 *
 */
public class Volatile {
/*********************************************************************************
* 关于volatile的使用
* java同步分两种方式1:同步块-函数,2:voaltile

* 通常情况下锁具备两个特征1:mutula exclusion 互斥,2:visibility可见性
* 1:一个变量值的修改同事只能有一个线程来做,
* 2:第一个线程修改之后的变量值对之后的线程可见

* synchronized 支持两个特性。
* volatile 仅支持第二个特性。

* 基于此特点,volatile不会造成线程阻塞

* 易用场景:
* 读操作远大于写操作
* 变量写操作不依赖当前值
* 变量不包含在其他变量的不变式中

* 不易用场景:计数器

* 二者完美结合可以实现一个简单的考小较低的读写锁。 
*
*********************************************************************************/
private volatile int value;

public int getValue() {
return value;
}
public synchronized void setValue(int value) {
this.value = value;
}
}

抱歉!评论已关闭.