RingBuffer 笔记

来源:互联网 发布:华为武汉研究所光网络 编辑:程序博客网 时间:2024/06/06 14:28
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();    }}



0 0
原创粉丝点击