/*
需求:
银行有一个金库。
有两个储户分别存300员,每次存100,存3次。
*/
class Bank
{
private int sum;
public synchronized void add(int num)//同步函数,如果参数没有就默认是this.如果被静态修饰就是XX.class。因为静态没有this
{
sum += num;
System.out.println("sum = "+sum);
}
}
class Cus implements Runnable
{
private Bank b = new Bank();
public void run()
{
for (int i=0;i<3 ;i++ )
{
b.add(100);
}
}
}
class BankDemo
{
public static void main(String[] args)
{
Cus c = new Cus();
Thread c1 = new Thread(c);
Thread c2 = new Thread(c);
c1.start();
c2.start();
}
}
private Bank b = new Bank();这句话,为什么要private修饰?
还有关于这个题目的思想,是怎么想的。为什么是由Bank同步,线程由Cus创建多个。不可以Cus普通类,Bank实现Runnable吗?感觉这样写好绕,因为从题意来分析,两个客户,应该是两个对象才对,不应该是两个线程,这样感觉是一个人同时在用两个窗口存钱。但是自己手打了一下发现如果客户创建两个对象,那么银行就会创建两个,不符合条件了。这个题应该从哪入手考虑
|
|