java队列LinkedBlockingQueue解析
- 2018-07-17 17:16:00
- admin 原创
- 2812
LinkedBlockingQueue是线程安全的,阻塞队列,实现先进先出顺序执行。也可以执行容量,不设置默认最大为Integer.MAX_VALUE
队列中,
public class MailQueue { //队列大小 static final int QUEUE_MAX_SIZE = 1000; static BlockingQueue<Email> blockingQueue = new LinkedBlockingQueue<Email>(QUEUE_MAX_SIZE); /** * 私有的默认构造子,保证外界无法直接实例化 */ private MailQueue(){}; /** * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 */ private static class SingletonHolder{ /** * 静态初始化器,由JVM来保证线程安全 */ private static MailQueue queue = new MailQueue(); } //单例队列 public static MailQueue getMailQueue(){ return SingletonHolder.queue; } //生产入队 public void produce(Email mail) throws InterruptedException { blockingQueue.put(mail); } //消费出队 public Email consume() throws InterruptedException { return blockingQueue.take(); } // 获取队列大小 public int size() { return blockingQueue.size(); } }
发表评论
文章分类
联系方式
联系人: | 郑州-小万 |
---|---|
电话: | 13803993919 |
Email: | 1027060531@qq.com |
QQ: | 1027060531 |
网址: | www.wanhejia.com |
Update Required
To play the media you will need to either update your browser to a recent version or update your Flash plugin.