/*
* 模拟 CAS 算法
*/
public class TestCompareAndSwap { public static void main(String[] args) {
final CompareAndSwap cas = new CompareAndSwap(); for (int i = 0; i < 10; i++) {
new Thread(new Runnable() { @Override
public void run() {
int expectedValue = cas.get();
boolean b = cas.compareAndSet(expectedValue, (int)(Math.random() * 101));
System.out.println(b);
}
}).start();
} } } class CompareAndSwap{
private int value; //获取内存值
public synchronized int get(){
return value;
} //比较
public synchronized int compareAndSwap(int expectedValue, int newValue){
int oldValue = value; if(oldValue == expectedValue){
this.value = newValue;
} return oldValue;
} //设置
public synchronized boolean compareAndSet(int expectedValue, int newValue){
return expectedValue == compareAndSwap(expectedValue, newValue);
}
}

最新文章

  1. IL指令详细表
  2. 深入分析ClassLoader
  3. phpstorm配置代码自动同步到服务器
  4. 关于c++数的进制的经验
  5. CSS3新添加的属性
  6. iOS崩溃日志分析-b
  7. VS2013中使用GDI+绘图
  8. crm创建基于fetch自己的自定义报告
  9. Android之AppWidget 开发浅析
  10. 痞子衡嵌入式:第一本Git命令教程(7.1)- 清理之缓存(stash)
  11. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
  12. 一:window环境,LaTex快速安装(简单易懂)
  13. Apache服务介绍
  14. Oracle EBS 表空间
  15. 【Python】使用python操作mysql数据库
  16. laravel 命令行输出进度条
  17. 【递推】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] D. XOR-pyramid
  18. 1013:Digital Roots
  19. Shadow Map 原理和改进 【转】
  20. Spring MVC http请求地址映射(三)

热门文章

  1. python基础----isinstance(obj,cls)和issubclass(sub,super)、反射、__setattr__,__delattr__,__getattr__、二次加工标准类型(包装)
  2. Java配置jdk图文教程
  3. selenium - 查看selenium版本信息
  4. 图像格式转换之BMP格式转换为JPG格式
  5. Hdu3022 Sum of Digits
  6. 手脱EZIP v1.0
  7. 「Django」rest_framework学习系列-路由
  8. 使用$http.post()提交数据后台接收不到
  9. (二)Hadoop例子——运行example中的wordCount例子
  10. 铺地砖|状压DP练习