在锁中使用多条件Condition

来源:互联网 发布:矩阵乘法计算公式 编辑:程序博客网 时间:2024/04/30 23:13

与锁绑定的所有条件对象都是通过Lock接口声明的newCondition()方法创建的。在使用条件的时候,必须获取这个条件绑定的锁,所以带条件的代码必须在调用Lock对象的Lock()方法和unlock()方法之间。

 当线程调用条件的await()方法时,它将自动释放这个条件绑定的锁,其他某个线程才可以获得这个锁并执行相同的操作,或执行这个锁保护的另一个临界区代码。

 备注:当以个线程调用了条件对象的signal()或signallAll()方法后,一个或者多个在该条件上挂起的线程将被唤醒,但这并不能保证让它们挂起的条件已满足,所有必须在while循环中调用await(),在条件成立之前不能离开这个循环。如果条件不成立再再次调用await()

0 0
原创粉丝点击