• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java WorkerPool类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.lmax.disruptor.WorkerPool的典型用法代码示例。如果您正苦于以下问题:Java WorkerPool类的具体用法?Java WorkerPool怎么用?Java WorkerPool使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



WorkerPool类属于com.lmax.disruptor包,在下文中一共展示了WorkerPool类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: startup

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
@Override
    public void startup() {
        EventBus eventBus = disruptorDispatchThread.getEventBus();
        executorService = new NonOrderedQueuePoolExecutor(poolName, excutorSize);
        cycleEventHandler = new CycleEventHandler[excutorSize];
        for(int i = 0; i < excutorSize; i++){
            cycleEventHandler[i] = new CycleEventHandler(eventBus);
        }

        RingBuffer ringBuffer = disruptorDispatchThread.getRingBuffer();
        workerPool = new WorkerPool(ringBuffer, ringBuffer.newBarrier(), new FatalExceptionHandler(), cycleEventHandler);
        ringBuffer.addGatingSequences(workerPool.getWorkerSequences());

        workerPool.start(executorService);

//        BatchEventProcessor<CycleEvent>[] batchEventProcessors = new BatchEventProcessor[excutorSize];
//        for(int i = 0; i < excutorSize; i++){
//            batchEventProcessors[i] = new BatchEventProcessor<>(ringBuffer, sequenceBarrier, cycleEventHandler[i]);
//            ringBuffer.addGatingSequences(batchEventProcessors[i].getSequence());
////            executorService.submit(batchEventProcessors[i]);
//        }
    }
 
开发者ID:jwpttcg66,项目名称:game-executor,代码行数:23,代码来源:DisruptorExecutorService.java


示例2: createWorkerPool

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
EventHandlerGroup<T> createWorkerPool(
        final Sequence[] barrierSequences, final WorkHandler<? super T>[] workHandlers) {
    final SequenceBarrier sequenceBarrier = ringBuffer.newBarrier(barrierSequences);
    final WorkerPool<T> workerPool = new WorkerPool<T>(ringBuffer, sequenceBarrier, exceptionHandler, workHandlers);
    consumerRepository.add(workerPool, sequenceBarrier);
    return new EventHandlerGroup<T>(this, consumerRepository, workerPool.getWorkerSequences());
}
 
开发者ID:winwill2012,项目名称:disruptor-code-analysis,代码行数:8,代码来源:Disruptor.java


示例3: initialize

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
@Override
public boolean initialize(EventsChannelConfig config)
{
       super.initialize(config);
	log.info("Initialize disruptor events channel " + config.getName() + " with " + config);
	EventFactory<GridEvent> eventFactory = new DisruptorEventFactory();
       int ringBufferSize = config.getBlockQueueMaxNumber(); 
       int threadSize = config.getEventConsumerNumber();
       int bufferSize = ringBufferSize;
       if (Integer.bitCount(bufferSize) != 1)
       {
           bufferSize = (int) Math.pow(2, (int) (Math.log(ringBufferSize) / Math.log(2)));
           log.warn("Change disruptor events channel " + config.getName() + 
                   " buffer size from " + ringBufferSize + " to " + bufferSize);
       }
       if (bufferSize <= 0)
           throw new GridException("Invalid disruptor ringbuffur size:" + ringBufferSize);
       threadPool = Executors.newFixedThreadPool(threadSize);
       ringBuffer = RingBuffer.createMultiProducer(eventFactory, bufferSize, new BlockingWaitStrategy());  
       SequenceBarrier sequenceBarrier = ringBuffer.newBarrier();  
       ExecutorService executor = Executors.newFixedThreadPool(10);  
       @SuppressWarnings("unchecked")
       WorkHandler<GridEvent>[] workHandlers = new WorkHandler[threadSize];  
       for (int i = 0; i < threadSize; i++) {  
           WorkHandler<GridEvent> workHandler = new DisruptorEventsWorkHandler(getName());  
           workHandlers[i] = workHandler;  
       }  
 
       workerPool = new WorkerPool<GridEvent>(ringBuffer, sequenceBarrier, 
               new IgnoreExceptionHandler(), workHandlers);  
       workerPool.start(executor);  
	return true;
}
 
开发者ID:liulhdarks,项目名称:darks-grid,代码行数:34,代码来源:DisruptorEventsChannel.java


示例4: KafkaRpcServer

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
public KafkaRpcServer(WorkerPool<ServerEvent> workerPool, RequestConsumer requestConsumer, ServerEventHandler eventHandler,
                      int workerThreads) {
    this.workerPool = workerPool;
    this.requestConsumer = requestConsumer;
    this.eventHandler = eventHandler;
    this.workerThreads = workerThreads;
}
 
开发者ID:devicehive,项目名称:devicehive-java-server,代码行数:8,代码来源:KafkaRpcServer.java


示例5: build

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
public RpcServer build() {
    final int workerThreads = 3;
    Producer<String, Response> responseProducer = new KafkaProducer<>(producerProps, new StringSerializer(), producerValueSerializer);
    final ServerEventHandler[] workHandlers = new ServerEventHandler[workerThreads];
    IntStream.range(0, workerThreads).forEach(
            nbr -> workHandlers[nbr] = new ServerEventHandler(requestHandler, responseProducer)
    );
    final WorkerPool<ServerEvent> workerPool = new WorkerPool<>(ServerEvent::new, new FatalExceptionHandler(), workHandlers);

    RequestConsumer requestConsumer = new RequestConsumer(topic, consumerProps, consumerThreads, consumerValueDeserializer);
    return new KafkaRpcServer(workerPool, requestConsumer, new ServerEventHandler(requestHandler, responseProducer), workerThreads);
}
 
开发者ID:devicehive,项目名称:devicehive-java-server,代码行数:13,代码来源:ServerBuilder.java


示例6: getWorkerPool

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
public WorkerPool getWorkerPool() {
    return workerPool;
}
 
开发者ID:jwpttcg66,项目名称:game-executor,代码行数:4,代码来源:DisruptorExecutorService.java


示例7: setWorkerPool

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
public void setWorkerPool(WorkerPool workerPool) {
    this.workerPool = workerPool;
}
 
开发者ID:jwpttcg66,项目名称:game-executor,代码行数:4,代码来源:DisruptorExecutorService.java


示例8: createWorkerPool

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
EventHandlerGroup<T> createWorkerPool(final Sequence[] barrierSequences, final WorkHandler<T>[] workHandlers) {
    final SequenceBarrier sequenceBarrier = ringBuffer.newBarrier(barrierSequences);
    final WorkerPool<T> workerPool = new WorkerPool<T>(ringBuffer, sequenceBarrier, exceptionHandler, workHandlers);
    consumerRepository.add(workerPool, sequenceBarrier);
    return new EventHandlerGroup<T>(this, consumerRepository, workerPool.getWorkerSequences());
}
 
开发者ID:wen866595,项目名称:annotated-src,代码行数:7,代码来源:Disruptor.java


示例9: bulkLoad

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
private static void bulkLoad(
		final Cache cache, long entriesToLoad,double[] bbox)
{
	final AtomicLong atomicLong = new AtomicLong();
	final ValueHandler[] valueHandlers = new ValueHandler[]{
			new ValueHandler(cache, atomicLong),
			new ValueHandler(cache, atomicLong),
			new ValueHandler(cache, atomicLong),
			new ValueHandler(cache, atomicLong)
	};

	final ExecutorService executorService = Executors.newCachedThreadPool();
	try
	{
		final RingBuffer<ValueEvent> ringBuffer =
				RingBuffer.createSingleProducer(ValueEvent.EVENT_FACTORY,
						4096,
						new YieldingWaitStrategy());

		final WorkerPool<ValueEvent> workerPool =
				new WorkerPool<ValueEvent>(ringBuffer,
						ringBuffer.newBarrier(),
						new FatalExceptionHandler(),
						valueHandlers);

		workerPool.start(executorService);
		try
		{
			publishLoadEvents(ringBuffer,entriesToLoad,bbox);
		}
		finally
		{
			workerPool.drainAndHalt();
		}
	}
	finally
	{
		executorService.shutdown();
	}
	System.out.format("Put %d elements.", atomicLong.get());
}
 
开发者ID:lanimall,项目名称:Ehcache_LMAXBulkLoader,代码行数:42,代码来源:LaunchLoader.java


示例10: RequestQueueProcessor

import com.lmax.disruptor.WorkerPool; //导入依赖的package包/类
/**
 * @param maxQueueSz
 * @param numThreads
 * @param name
 */
public RequestQueueProcessor(int maxQueueSz, int numThreads, String name) {

	m_name = name;
	m_maxQueueSz = maxQueueSz;

	m_ringBuffer = RingBuffer.createMultiProducer(m_eventFactory,
			normalizeBufferSize(m_maxQueueSz), new BlockingWaitStrategy());
	m_barrier = m_ringBuffer.newBarrier();

	m_numThreads = numThreads;

	QueueProcessorWorkHandler[] handlers = new QueueProcessorWorkHandler[m_numThreads];

	for (int i = 0; i < m_numThreads; i++) {
		handlers[i] = new QueueProcessorWorkHandler();
	}

	m_worker = new WorkerPool(m_ringBuffer, m_barrier,
			new QueueProcessorExceptionHandler(m_dropCounter, name),
			handlers);
	

	m_ringBuffer.addGatingSequences(m_worker.getWorkerSequences());
	
	m_executor = Executors.newFixedThreadPool(m_numThreads,
			new NameableThreadFactory(name));
	m_ringBuffer = m_worker.start(m_executor);

}
 
开发者ID:pulsarIO,项目名称:jetstream,代码行数:35,代码来源:RequestQueueProcessor.java



注:本文中的com.lmax.disruptor.WorkerPool类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java QuotedPrintableInputStream类代码示例发布时间:2022-05-23
下一篇:
Java HumanNameDt类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap