普通银行账户,不可透支
class MyCount {
private String oid; //账号
private int cash; //账户余额
private Lock lock = new ReentrantLock(); //账户锁
private Condition _save = lock.newCondition(); //存款条件
private Condition _draw = lock.newCondition(); //取款条件
MyCount(String oid, int cash) {
this.oid = oid;
this.cash = cash;
}
* 存款
* @param x 操作金额
* @param name 操作人
*/
public void saving(int x, String name) {
lock.lock(); //获取锁
if (x > 0) {
cash += x; //存款
System.out.println(name + "存款" + x + ",当前余额为" + cash);
}
_draw.signalAll(); //唤醒所有等待线程。
lock.unlock(); //释放锁
}
Java线程:新特征-条件变量(4)
本文介绍了一个简单的银行账户类实现,该类支持存款和取款操作,并使用ReentrantLock和Condition来确保多线程环境下的操作一致性。账户具备基本属性如账号和余额,并通过锁机制保护账户资金安全。

被折叠的 条评论
为什么被折叠?



