本帖最后由 香草芭芙 于 2014-10-10 05:57 编辑
需求:
* 银行里有一个金库
* 有两个储户分别存300元, 每次存100, 存3次
金库用 内部类, 银行用 饿汉式。 储户class 里有 存钱方法, 参数: 存钱次数, 每次存的金额,
储户存钱用 多线程. 最后打印, 总金额, - /*
- * 需求:
- * 银行有一个金库
- * 有两个储户分别存300元, 每次存100, 存3次
- * `
- * 金库用 内部类, 银行用 饿汉式。 储户class 里有 存钱方法, 参数: 存钱次数, 每次存的金额,
- * 储户存钱用 多线程. 最后打印, 总金额,
- *
- * */
- class BankDemoTest
- {
- public static void main(String[] args) throws InterruptedException
- {
- Client cl1 = new Client(100, 3);
- Client cl2 = new Client(100, 3);
- Thread t1 = new Thread(cl1);
- Thread t2 = new Thread(cl2);
- t1.start();
- t2.start();
- /*
- while (true)
- {
- if (!(t1.isAlive() || t2.isAlive()))
- {
- break;
- }
- }
- */
- t1.join();
- t2.join();
- System.out.println(Bank.coffer.sum);
- }
- }
- class Bank
- {
- private Bank()
- {
- }
- static Bank b = new Bank();
- static Bank getBank()
- {
- return b;
- }
- static class coffer
- {
- static int sum;
- }
- void add(int money)
- {
- coffer.sum += money;
- }
- }
- class Client implements Runnable
- {
- Bank b = Bank.getBank();
- int n;
- int money;
- Client(int money, int n)
- {
- this.money = money;
- this.n = n;
- }
- void keepMoney()
- {
- b.add(money);
- }
- @Override
- public void run()
- {
- // TODO Auto-generated method stub
- for (int x = 0; x < n; x++)
- {
- keepMoney();
- }
- }
- }
复制代码
|