package mytest; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.lmax.disruptor.EventFactory; import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.RingBuffer; import com.lmax.disruptor.SingleThreadedClaimStrategy; import com.lmax.disruptor.SleepingWaitStrategy; import com.lmax.disruptor.dsl.Disruptor; public class RingBufferTester { private static class SimpleEvent { } private static class SimpleEventFactory implements EventFactory<SimpleEvent> { public SimpleEvent newInstance() { return new SimpleEvent(); } } public static class SimpleEventHandler implements EventHandler<SimpleEvent> { @Override public void onEvent(SimpleEvent event, long sequence, boolean endOfBatch) throws Exception { System.out.println(event); while (true) { Thread.sleep(10000); } } } /** * @param args */ public static void main(String[] args) { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat( "Action" + "-thread-%d").build(); EventFactory<SimpleEvent> EVENT_FACTORY = new EventFactory<SimpleEvent>() { @Override public SimpleEvent newInstance() { return new SimpleEvent(); } }; ExecutorService es = Executors.newCachedThreadPool(namedThreadFactory); Disruptor<SimpleEvent> disruptor = new Disruptor<SimpleEvent>(EVENT_FACTORY, es, new SingleThreadedClaimStrategy(1024 ), new SleepingWaitStrategy()); disruptor.handleEventsWith(new SimpleEventHandler()); final RingBuffer<SimpleEvent> ringBuffer = disruptor.start(); Runnable task = new Runnable() { @Override public void run() { while (true) { long seq = ringBuffer.next(); System.out.println(seq); ringBuffer.publish(seq); } } }; Thread t = new Thread(task); t.setName("test-1"); t.start(); // t = new Thread(task); // t.setName("test-2"); // t.start(); // final RingBuffer<SimpleEvent> ringBuffer = new RingBuffer<SimpleEvent>(SimpleEvent.EVENT_FACTORY, // new SingleThreadedClaimStrategy(64), new YieldingWaitStrategy()); // // final SimpleEventHandler eventHandler = new SimpleEventHandler(); // final BatchEventProcessor<SimpleEvent> eventProcessor = // new BatchEventProcessor<SimpleEvent>(ringBuffer, // ringBuffer.newBarrier(), // eventHandler); // eventHandler.sesetSequence(eventProcessor.getSequence()); // ringBuffer.setGatingSequences(eventProcessor.getSequence()); // ringBuffer.publish(sequence) } }
相关推荐
白色大气风格的商务团队公司模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的手机电脑商城模板下载.zip
SecureCRT_9.6.0__mac
海康4117 Litermal 小李电子实验室 开源项目使用说明
白色大气风格的婚礼布置现场企业网站模板下载.zip
基于PLC和组态软件的智能停车场收费系统停车场电气控制
白色大气风格响应式项目团队动态企业网站模板.zip
“教育的智慧”读书分享会教案课件模板
白色大气风格的色彩管理网站模板下载.zip
计算机网络期末复习(第八版)谢希仁
白色大气的服装鞋包商城整站网站模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色扁平化风格的西餐厅网店模板下载.zip
数字时钟基础框架设计,内部关键模块均已仿真完成。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
白色扁平化风格的私人订制旅行模板下载.zip
白色扁平化风格的滑雪运动体育项目模板.zip
白色简单的商务企业网站模板下载.rar
白色大气风格响应式产品展示企业网页模板.zip