我可以使用object.wait
,object.notify
和synchronized blocks
来解决生产者消费者类型的问题。同时,我可以使用locks
包中的conditions
和java.util.concurrent
。我确信当我们可以使用object.wait
和notify
使线程在某些条件下等待队列为空或满时,我无法理解为什么我们需要条件。如果我们使用java.util.concurrent.locks.Condition
,我们会获得其他任何好处吗?
答案 0 :(得分:4)
This article提供了一个很好的解释:
正如Lock是一个概括 同步,Lock框架 包括等待和概括 通知叫做条件。一个Lock对象 充当条件的工厂对象 绑定到该锁的变量,和 不像标准的等待和 通知方法,可以有多个 与...相关的一个条件变量 一个给定的锁。