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(); } }
相关文章推荐
- disruptor---master源码分析
- Ring buffer basics 环形缓冲基础(C语言实现) 二
- Ring buffer basics 环形缓冲基础 一
- 环形缓冲区的实现原理与例程
- stm32F4 串口DMA+环形缓冲区的实现
- Zephys OS nano 内核篇:环形缓冲 Ring Buffer
- Disruptor-无锁编程-核心原理剖析- Volatile的普遍误解
- Disruptor-架构思维的转变
- Java并发框架Disruptor实现原理与源码分析(三) RingBuffer原理模型与源码分析
- golang实现ringbuffer(不定长)
- lmax.disruptor高效内存消息队列spring整合
- C++ 环形缓冲区RingBuffer 简单实现
- log4j2性能剖析
- jQuery密码强度验证控件使用详解
- full-height-scroll类(Bootstrap)
- 关于百度地图动态事件调用的使用
- Jquery如何判断文字是否溢出div p
- 编辑器生成的html代码再显示的样式冲突问题
- bootstrap做的jsp页面(包括根据值让table显示选中)
- 标签页(Bootstrap)