阅读背景:

137_多线程(多线程-同步函数)

来源:互联网 

/*
需求:银行有一个金库。
有两个储户分离存300元,每次存100,存3次

目标:该程序是不是有安全问题,如果有,如何解决。

如何找问题:
1.明白哪些代码是多线程运行代码
2.明白同享数据
3.明白多线程运行代码中哪些语句是操作同享数据的
*/

class Banka{
	private int sum;
	public sychronized void add(int n){
		sum += n;
		try{
			Thread.sleep(10);
		}
		catch(Exception e){
			
		}
		System.out.println("sum = "+sum);
	}
}

class cus implements Runnable{
	private Bank b = new Bank();
	public void run(){
		for(int x=0;x<3;x++){
			b.add(100);
		}
	}
}

class Bank{
	public static void main(String[] args){
		Cus c = new Cus();
		Thread t1 = new Thread(c);
		Thread t2 = new Thread(c);
		t1.start();
		t2.start();
	}
}

/*
需求:银行有一个金库。
有两个储户分离存300元,每次存100,存3次

目标:该程序是不是




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: