2014年3月5日

zz 聊聊并发(七)——Java中的阻塞队列

摘要: 1. 什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:方法\处理方式抛出异常返回特殊值一直阻塞超时退出插入方法add(e)offer(e)put(e)offer(e,time,unit)移除方法remove()poll()take()poll(time,unit)检 阅读全文

posted @ 2014-03-05 15:26 aiguang 阅读(187) 评论(0) 推荐(0) 编辑

聊聊并发(六)

摘要: 1. 引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下Doug Lea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的,相信从大师身上我们能学到不少并发编程的技巧。2. ConcurrentLinkedQueue的介绍ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列 阅读全文

posted @ 2014-03-05 14:52 aiguang 阅读(270) 评论(0) 推荐(0) 编辑

jvm 内存参数

摘要: 运行时开关‘强制性’参数-verbose:gc——为用户输出一些GC信息-Xloggc:——指定日志输出路径,要确保磁盘有空间-XX:+PringGCDetails——为辅助工具提供“最低限度信息(Minimum information)”——用这个参数代替-verbose:gc--XX:PrintTenuringDistribution——“过早提升(Premature promotion)”信息基本堆大小参数-Xms—— 设置预留给堆的最小内存值-Xmx—— 设置预留给堆的最大内存值-XX:MaxPermSize=——设置永久代的最大内存值——有利于Spring应用程序和应用服务器以前,我 阅读全文

posted @ 2014-03-05 14:24 aiguang 阅读(591) 评论(0) 推荐(0) 编辑

导航