您的位置:首页 > Web前端

RingBuffer 笔记

2017-01-05 15:13 316 查看
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();
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Ringbuffer