【并发编程】之模拟CAS算法
2018-06-03 16:38
429 查看
package com.example.juc.thread; /** * Created by wj on 2018/6/3. * 模拟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 expected = cas.get(); Boolean b = cas.compareAndSet(expected, (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); } }
相关文章推荐
- JAVA 并发编程-读写锁之模拟缓存系统(十一)
- 黑马程序员--Socket编程并发上传图片,并发登陆,模拟浏览器请求服务端服务
- JAVA 并发编程-读写锁之模拟缓存系统(十一)
- 并发编程复习(六):使用wait和notify模拟阻塞队列
- Java并发编程之CAS算法
- HTTP 笔记与总结(5)socket 编程:使用 HTTP 协议模拟登录并发帖
- 并发编程之Future模式的模拟实现
- c++并发编程,简单模拟飞机订票系统
- Go基础编程:并发编程—概述
- Java7并发编程--3.3、CyclicBarrier在集合点同步
- java 并发编程-队列同步器AQS了解
- [转载]Java并发编程:深入剖析ThreadLocal
- TCP多进程并发服务端 Linux socket编程入门(2)
- 并发编程的15 条建议
- 【Java并发编程】之十九:并发新特性—Executor框架与线程池(含代码)
- Python并发编程之进程
- 【Java并发编程】之二十:并发新特性—Lock锁和条件变量(含代码)
- 【转】Netty系列之Netty并发编程分析
- Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁
- [转]JAVA并发编程学习笔记之Unsafe类