GUC-3 模拟CAS算法
2024-08-29 15:55:55
/*
* 模拟 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);
}
}
最新文章
- IL指令详细表
- 深入分析ClassLoader
- phpstorm配置代码自动同步到服务器
- 关于c++数的进制的经验
- CSS3新添加的属性
- iOS崩溃日志分析-b
- VS2013中使用GDI+绘图
- crm创建基于fetch自己的自定义报告
- Android之AppWidget 开发浅析
- 痞子衡嵌入式:第一本Git命令教程(7.1)- 清理之缓存(stash)
- Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
- 一:window环境,LaTex快速安装(简单易懂)
- Apache服务介绍
- Oracle EBS 表空间
- 【Python】使用python操作mysql数据库
- laravel 命令行输出进度条
- 【递推】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] D. XOR-pyramid
- 1013:Digital Roots
- Shadow Map 原理和改进 【转】
- Spring MVC http请求地址映射(三)
热门文章
- python基础----isinstance(obj,cls)和issubclass(sub,super)、反射、__setattr__,__delattr__,__getattr__、二次加工标准类型(包装)
- Java配置jdk图文教程
- selenium - 查看selenium版本信息
- 图像格式转换之BMP格式转换为JPG格式
- Hdu3022 Sum of Digits
- 手脱EZIP v1.0
- 「Django」rest_framework学习系列-路由
- 使用$http.post()提交数据后台接收不到
- (二)Hadoop例子——运行example中的wordCount例子
- 铺地砖|状压DP练习