zoukankan      html  css  js  c++  java
  • 3. 原子变量-CAS算法

    1. 是什么 ?

    2. CAS算法模拟

    package com.gf.demo03;
    public class TestCompareAndSwap {
    
    	public static void main(String[] args) {
    		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);
    	}
    }
    

    关注我的公众号,精彩内容不能错过

  • 相关阅读:
    Hive
    Hadoop简介与分布式安装
    Hadoop分布式文件系统HDFS
    HDFS的操作SHELL和API
    HDFS高级功能
    Yarn
    Hadoop的I/O操作
    Hadoop的RPC工作原理
    Mapreduce入门和优化方案
    MapReduce的工作机制
  • 原文地址:https://www.cnblogs.com/huanchupkblog/p/8037615.html
Copyright © 2011-2022 走看看