概述
今天同学问到银行存取款,如何保持同步,随手写了一个简单例子.
首先是银行:
private int money = 1000;
public synchronized void add(int n) {
money += n;
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "----余额: " + money);
}
public synchronized void reduce(int n) {
if(money - n >= 0) {
money -= n;
} else {
System.out.println("余额不足");
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "----余额: " + money);
}
其中关键在于方法加锁,利用的是java内置的互斥锁机制.
接下来就是用户:
public Bank bank;
sta
最后
以上就是洁净春天为你收集整理的java多线程银行存取款_多线程学习(一)银行存取款的全部内容,希望文章能够帮你解决java多线程银行存取款_多线程学习(一)银行存取款所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复