多线程
美了美了
java python
展开
-
ReentrantLock Condition使用详解
我们通过一个实际的例子来解释Condition的用法:我们要打印1到9这9个数字,由A线程先打印1,2,3,然后由B线程打印4,5,6,然后再由A线程打印7,8,9. 这道题有很多种解法,现在我们使用Condition来做这道题(使用Object的wait,notify方法的解法在这里)。package cn.outofmemory.locks;import java.util.c转载 2016-05-31 14:49:58 · 707 阅读 · 0 评论 -
java中ReentrantLock 、 Condition、synchronized差异
ReentrantLock + Condition 是给用户更加精确的线程控制的ReentrantLock表示可从入锁Condition 表示条件变量synchronized是没一个对象内部已经定义好的一个关键,在每一个对象内部都有一个锁,如果一个方法使用了 synchronized关键字,那么对象将保护整个方法他和:public void fun(){try{原创 2016-05-31 15:11:24 · 443 阅读 · 0 评论 -
ArrayBlockingQueue和LinkedBlockingQueue的使用
BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。 ArrayBlockingQueue是一个由数组支持的有界阻塞队列。在读写操作上都需要锁住整个容器,因此吞吐量与一般的实现是相似的,适合于实现“生产者消费者”模式。转载 2016-06-02 11:16:34 · 1356 阅读 · 0 评论