Java多线程在修改同一个变量的问题
请问以下的程序的做的事情是:两个线程,都针对bank对象的money字段作减法操作,但打印结果为什么是
left money 200
left money 200
或者是
left money -600
left money -600
public class Test1 {
public static void main(String[] args) {
Bank bank = new Bank();
Thread thread1 = new MoneyThread(bank);
Thread thread2 = new MoneyThread(bank);
thread1.start();
thread2.start();
}
}
class Bank {
private int money = 1000;
public int getMoney(int number) {
if (number < 0 ||number > money) {
return -1;
} else {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
money -= number;
System.out.println("left money " + money);
return number;
}
}
}
class MoneyThread extends Thread {
private Bank bank;
public MoneyThread(Bank bank) {
this.bank = bank;
}
@Override
public void run() {
bank.getMoney(800);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论