在前面的一篇中,总结了如何使用Lock和Condition对象。我们先总结一下有关锁和条件的关键之处:
锁用来保护代码片段,任何时刻只能有一个线程执行被保护的代码。锁可以管理试图进入被保护代码段的线程。
锁可以拥有一个或多个相关的条件对象。每个条件对象管理那些已经进入被保护的代码段但还不能运行的线程。
synchronized关键字
Java中的每一个对象都有一个内部锁;...
分类:
编程语言 时间:
2015-01-30 09:17:35
阅读次数:
234
1.概述
使用Condition应在Lock的前提下,请先参见Java_并发线程_Lock、ReadWriteLock一文。在synchronized同步代码块中使用了obj的锁对象,然后通过obj.notify()和obj.wait()来配合处理多线程的问题。然而,同样lock和condition配合使用同样可以完成同样的功能,condition只有配合lock使用才有意义,只不过lock...
分类:
编程语言 时间:
2014-10-29 10:48:50
阅读次数:
250
java线程 使用显示的lock 和condition...
分类:
编程语言 时间:
2014-10-12 14:58:58
阅读次数:
151
JDK5.0之前,用java实现生产者和消费者的唯一方式就是使用synchronized内置锁和wait/notify条件通知机制。JDK5.0之后提供了显示锁Lock和条件队列Condition,与内置锁和内置条件队列相对应,但是显示的锁和条件队列,功能更强大,更灵活。此外JDK5.0之后还提供了大量很有用的并发工具类,如BlockingQueue等,基于这些数据结构,能够方便、快速、高效的构建...
分类:
其他好文 时间:
2014-08-07 23:11:55
阅读次数:
450
在jdk 的API中提供了一个字符串的阻塞队列 :class BoundedBuffer {
final Lock lock = new ReentrantLock(); final Condition notFull =
lock.newCondition(); final Con...
分类:
其他好文 时间:
2014-05-16 05:11:43
阅读次数:
323