Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable。另外还有JDK1.2中加入的同步包装类,这些类都是由Collections.synchronizedXXX工厂方法。同步容器都是线程安全的,但是对于复合操作,缺有些缺点:① 迭代:在查觉到...
分类:
编程语言 时间:
2015-04-13 14:19:00
阅读次数:
375
我们到底能走多远系列(42)扯淡: 乘着有空,读些juc的源码学习下。后续把juc大致走一边,反正以后肯定要再来。主题:BlockingQueue 是什么A java.util.Queue that additionally supports operations that wait for th....
分类:
其他好文 时间:
2015-04-10 15:12:42
阅读次数:
118
BlockingQueue接口定义了包括两个附加功能的队列。这两个功能是:如果从空队列中取元素或者向满队列中增加元素,则进入等待状态。BlockinQueue接口中的方法pu(e)t和take()可以使其进入无限阻塞状态,可以用这两个方法实现生产者和消费者问题,比较简单。代码如下:package ....
分类:
其他好文 时间:
2015-04-07 18:59:38
阅读次数:
86
本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入 等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等 待状态....
分类:
其他好文 时间:
2015-04-05 00:59:49
阅读次数:
194
ArrayBlockingQueue和LinkedBlockingQueue简介、使用示例...
分类:
其他好文 时间:
2015-04-04 15:19:12
阅读次数:
144
今天上午,参加大摩的面试,自觉失败,记录一下过程。
面试官看着简历,并没有就简历提问,整个过程都在问java多线程的问题。
1. ReentrantLock,作为可重入锁,怎么理解“可重入”二字,有没有不可重复的锁?
我:获得对象锁的线程能够再次获得对象锁,访问对象……被鄙视了,后来想想,应该把递归这种场景说下;
2.生产者-消费者模型怎么实现?
我:使用synchronized或者Lo...
分类:
编程语言 时间:
2015-04-03 17:22:16
阅读次数:
246
LinkedBlockingQueue是由链表组成的阻塞队列,先来看demo
public class LinkedBlockingQueueDemo {
public static void main(String[] args) {
ExecutorService es = Executors.newCachedThreadPool();
BlockingQueue queue ...
分类:
数据库 时间:
2015-03-27 22:25:36
阅读次数:
196
##什么是阻塞队列## 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于...
分类:
编程语言 时间:
2015-03-20 16:39:24
阅读次数:
154
1 import java.util.concurrent.ArrayBlockingQueue; 2 import java.util.concurrent.BlockingQueue; 3 import java.util.concurrent.locks.Lock; 4 import jav....
分类:
其他好文 时间:
2015-03-18 00:57:38
阅读次数:
214
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util....
分类:
编程语言 时间:
2015-03-14 21:36:52
阅读次数:
127