版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/woshimike/article/details/54093452
package com.lyq.jsoup.ringbuffer;
import java.util.concurrent.atomic.AtomicLong;
/**
* Created by lyq on 2017/1/5.
*/
public class ArrayRingBuffer {
private AtomicLong count = new AtomicLong();
private int length ;
Object[] array = null;
ArrayRingBuffer(int length){
array = new Object[length];
this.length = length;
}
public long next(){
return count.incrementAndGet();
}
public int put(Object o,long count){
int index = (int)count % length;
array[index] = o;
return index;
}
public Object get(long count){
int index = (int)count % length;
return array[index];
}
}
package com.lyq.jsoup.ringbuffer; import com.lyq.jsoup.testlist.Main; import java.util.Random; /** * Created by Administrator on 2017/1/5. */ public class TestArrayRingBuffer { public static void main(String[] args){ ArrayRingBuffer arrayRingBuffer = new ArrayRingBuffer(4); new Thread(new Runnable() { @Override public void run() { for (int i = 0;i<10;i++){ long count = arrayRingBuffer.next(); int randomDouble = (int)(Math.random()*100); arrayRingBuffer.put(randomDouble,count); System.out.println("count="+count+" randomDouble:"+randomDouble); } } }).start(); new Thread(new Runnable() { @Override public void run() { for (long i = 0;i<12;i++){ System.out.println("randomDouble:"+arrayRingBuffer.get(i)); } } }).start(); } }