package com.rongda.mybatispersonal.test;
/**
* @description:多线程实现对数组分片处理,互不影响
* @see:com.rongda.mybatispersonal.test
* @author:丁金阳
* @createTime:2020-05-14 14:53
*/
public class 并发处理数组测试1 {
//Node数组
volatile int[] table;
//表示数组长度
volatile int transIndex;
//数组元素下标
volatile int size;
//电脑核数
final int NCPU=Runtime.getRuntime().availableProcessors();
public 并发处理数组测试1(int capacity){
if(capacity<0||capacity>Integer.MAX_VALUE)
throw new RuntimeException("数组超出最大限制");
table=new int[capacity];
transIndex =capacity;
}
/**
* cas
* @param expectCount 期望值
* @param newCount 修改值
* @return
*/
private boolean compareAndSwap(int expectCount,int newCount){
if(size==expectCount){
size=newCount;
return true;
}
return false;
}
/**
* 线程安全put
多线程分片处理任务1
于 2020-05-15 11:03:46 首次发布