Disruptor是一个高性能的用于线程间消息处理的开源框架。它的目标就是快.我们知道,java.util.concurrent.ArrayBlockingQueue 是一个非常优秀的有界队列实现。Disruptor与之相比,性能更加的优秀。性能比较完整的性能报告在这里.Disruptor内部使用了...
分类:
其他好文 时间:
2014-08-11 23:52:33
阅读次数:
322
这是一个基于Comet实现的聊天室Demo,功能类似于QQ群聊。聊天过程中如果有新想消息,那么就需要服务器推送消息到浏览器,所以这里可以使用Comet技术。
Comet一般有两种实现方式:长轮询(long-polling)、流(streaming)。而本文中的这个Demo的实现方式是基于流(streaming),前端使用了一个隐藏的iframe,这也是比较常用的一种方式。不过由于使用iframe流,导致浏览器上面的进度一直在转,这是因为iframe一直在加载的原因,先不要在意这些细节。
Tomcat提供了C...
分类:
其他好文 时间:
2014-08-11 10:09:52
阅读次数:
213
对于BlockingQueue的具体实现,主要关注的有两点:线程安全的实现和阻塞操作的实现。所以分析ArrayBlockingQueue也是基于这两点。对于线程安全来说,所有的添加元素的方法和拿走元素的方法都会涉及到,我们通过分析offer方法和poll()方法就能看出线程安全是如何实现的。首先来看...
分类:
编程语言 时间:
2014-08-10 21:05:50
阅读次数:
247
atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
1. 阻塞队列和非阻塞队列 1
2. java.util.Queue接口, 1
3. ConcurrentLinkedQueue 2
4. BlockingQueue阻塞队列 2
4.1. 1. ArrayBlockingQueue 3
4.2. 2. LinkedBlockingQueue 3...
分类:
数据库 时间:
2014-07-30 20:47:04
阅读次数:
510
packagecom;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.concurrent.ArrayBlockingQueue;
importjava.util.concurrent.ConcurrentHashMap;
/**
*MQ
*@authorpengbo
*
*/
publicclassQueueManager{
publicstaticfinalintMAX_QUEUE_SIZE=200;
//创建一..
分类:
其他好文 时间:
2014-07-23 00:18:28
阅读次数:
222
java同步包种ArrayBlockingQueue类的分析与理解...
分类:
编程语言 时间:
2014-07-08 14:07:11
阅读次数:
131
Re'entrantLock lock = new ReentrantLock(fair);
Condition
notEmpty = lock.newCondition(); //返回内部类 AbstractQueuedSyncronizer.ConditionObject
各自维护了两个队列.一个是阻塞同步队列 syncQueue 双向队列,一个是条件等待队列....
分类:
数据库 时间:
2014-06-27 09:10:37
阅读次数:
505
简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
三者都是blockingQueue.
LinkedBlockingQueue,ArrayBlockingQueue
有界,默认是Integer.Max;
SynchronousQueue没什么界不界的概念.之所以这么...
分类:
其他好文 时间:
2014-06-25 19:19:39
阅读次数:
397
LinkedBlockingQueue是BlockingQueue的一种使用Link
List的实现,它对头和尾(取和添加操作)采用两把不同的锁,相对于ArrayBlockingQueue提高了吞吐量。它也是一种阻塞型的容器,适合于实现“消费者生产者”模式。ArrayBlockingQueue是对B...
分类:
数据库 时间:
2014-06-06 18:19:29
阅读次数:
1947
目的:本文通过分析JDK源码来对比ArrayBlockingQueue 和LinkedBlockingQueue,以便日后灵活使用。
1. 在Java的Concurrent包中,添加了阻塞队列BlockingQueue,用于多线程编程。BlockingQueue的核心方法有:
* boolean add(E e) ,把 e 添加到BlockingQueue里。如果BlockingQueue可以容纳,则返回true,否则抛出异常。
* boolean offer(E e),表示如果可能的话,将 e 加...
分类:
数据库 时间:
2014-05-22 12:19:23
阅读次数:
442