银行有一个账户。有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。效果要是交替打印!


import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/*银行有一个账户。有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。注意:效果要是交替打印!(多线程实现)*/
class  cun implements Runnable{
	int sum=0;
	int a = 0;
	int b =0;
	Lock loc = new ReentrantLock();
	static boolean bool=true;
	public  void run(){
		for(int i=1;i<=6;i++){
			synchronized(this){
			notify();//先唤醒另一个线程
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(sum<6000){
			sum+=1000;
				if(Thread.currentThread().getName().equals("账户一")){
					a+=1000;
					System.out.println(Thread.currentThread().getName()+"目前存了"+a);
				}else{
					b+=1000;
					System.out.println(Thread.currentThread().getName()+"目前存了"+b);
				}
			
			System.out.println("目前余额"+sum);
			try {
				wait();//打印完后等待下一次被唤醒
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			}
			}
		}
	}
	
}
public class Test {
	public static void main(String[] args) {
		cun c = new cun();
		Thread t1 = new Thread(c,"账户一");
		Thread t2 = new Thread(c,"账户二");
		t1.start();
		t2.start();
	}
}



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值