标签:locking 原则 延时 优先 缓存系统 任务调度 缓存 argument cap
ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部;当我们获取一个元素时,它会返回队列头部的元素。它采用了“wait-free”算法(即CAS算法)来实现。
ArrayBlockingQueue 通过 ArrayBlockingQueue fairQueue = new ArrayBlockingQueue(1000,true);保证线程公平访问队列。
看下构造方法:
public ArrayBlockingQueue(int capacity, boolean fair) { if (capacity <= 0) throw new IllegalArgumentException(); this.items = new Object[capacity]; lock = new ReentrantLock(fair); notEmpty = lock.newCondition(); notFull = lock.newCondition(); }
使用可重入锁实现。
DelayQueue使用场景:
java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列
标签:locking 原则 延时 优先 缓存系统 任务调度 缓存 argument cap
原文地址:http://www.cnblogs.com/androidsuperman/p/6639410.html