java Lock-Condition


1、Lock只是一个接口,基本开一个Lock就是开一个可重入锁: Lock lock = new ReentrantLock();

2、wait(),wait(long timeout),notify(),notifyAll(),这些方法配合synchronized关键字一起使用可以实现等待/通知模式。而Condition接口也提供了类似Object监视器的方法,通过与Lock配合来实现等待/通知模式。Lock比起synchronized的控制效果更佳精细。

 

参考:https://www.cnblogs.com/zhjh256/p/6389168.html

这里面类似于生产者消费者问题,有两个Condition对象:

private Condition _save = lock.newCondition(); // 存款条件

private Condition _draw = lock.newCondition(); // 取款条件

先从取款说起:如果这次获得取款锁的对象发现里面的钱不够我取(while判断)那么将他挂起,让给其他线程取款,这时候如果有一个存款操作,都会唤醒所有挂起的取款操作,那么这些挂起的继续while判断还能不能取。

 

Condition参考:https://www.jianshu.com/p/be2dc7c878dc

转载于:https://www.cnblogs.com/LinsenLi/p/9803117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值