一、任务描述:
假设两个储户都去银行往同一个账户里存款,一次存100,每人存3次,要求储户每存一次钱,账户余额都增加100,并在控制台输出当前账户的余额
二、运行结果:
三、实现思路:
1、两个人存款,两个线程
2、创建程任务类是模拟存款操作
3、银行类提供 存钱方法
四、实现代码:
package task01;
/**
* @author wangyue
* @version 1.0
* @date 2019/7/9 14:04
* @describe: 测试类
*/
public class Test {
public static void main(String[] args){
//线程的任务对象
ThreadTask task=new ThreadTask();
//创建两个线程
Thread th1=new Thread(task, "用户1"); //必须使用同一个任务对象
Thread th2=new Thread(task, "用户2");
//开启线程
th1.start();
th2.start();
}
}
package task01;
/**
* @author wangyue
* @version 1.0
* @date 2019/7/9 14:05
* @describe: 线程任务类
*/
public class ThreadTask implements Runnable{
Bank bank=new Bank();
@Override
public void run() {
for (int i=0;i<3;i++) {
System.out.println("用户" + Thread.currentThread().getName() + "正在存款");
bank.addMoney(100);
}
}
}
package task01;
/**
* @author wangyue
* @version 1.0
* @date 2019/7/9 14:06
* @describe: 银行类
*/
public class Bank {
private int deposit=0;
public void addMoney (int money){ //static方法只能调用static变量
synchronized (this) {
deposit += money;
System.out.println("当前余额:" + deposit);
}
}
}