本帖最后由 ぺsimon☆ 于 2013-4-21 13:57 编辑
- /*
- 需求:储户到银行存款,一次存100元,存三次
- 因为有很多用户同时存钱,多线程处理
- */
- class Bank //定义一个银行类
- {
- private int sum,; //定义成员变量sum
- public synchronized void add(int n)//把函数加锁,避免多线程调用
- {
- sum=sum+n;
- try{Thread.sleep(20);}catch(Exception e){} //让线程睡一会儿
- System.out.println(sum); //输出sum
- }
- }
- class Cus implements Runnable //定义一个储户类并实现Runnable类
- {
- Bank b=new Bank(); //创建一个银行
- public void run() //复写run方法
- {
- for(int x=0;x<3;x++) //存户一次存一百存了三次
- {
- b.add(100); //调用add方法
- }
- }
- }
- class BankDemo
- {
- public static void main(String[] args)
- {
- Cus c=new Cus();
- Thread t1=new Thread(c);
- Thread t2=new Thread(c);
- Thread t3=new Thread(c);
- Thread t4=new Thread(c);
- t1.start();
- t2.start();
- t3.start();
- t4.start();
- }
- }
复制代码 问题1:以下的语句中,为什么catch里面没有写处理语句,程序不会出错呢?不是try了就要处理吗?谢谢
try{Thread.sleep(20);}catch(Exception e){} //让线程睡一会儿
问题2:储户类中,Bank b=new Bank();
改为private Bank b;
b=new Bank();为什么会报错呢?
|