多线程
美了美了
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 · 708 阅读 · 0 评论 -
java中ReentrantLock 、 Condition、synchronized差异
ReentrantLock + Condition 是给用户更加精确的线程控制的 ReentrantLock表示可从入锁 Condition 表示条件变量 synchronized是没一个对象内部已经定义好的一个关键,在每一个对象内部都有一个锁,如果一个方法使用了 synchronized关键字,那么对象将保护整个方法他和: public void fun(){ try{原创 2016-05-31 15:11:24 · 445 阅读 · 0 评论 -
ArrayBlockingQueue和LinkedBlockingQueue的使用
BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。 ArrayBlockingQueue是一个由数组支持的有界阻塞队列。在读写操作上都需要锁住整个容器,因此吞吐量与一般的实现是相似的,适合于实现“生产者消费者”模式。转载 2016-06-02 11:16:34 · 1358 阅读 · 0 评论