A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  老毕的视频中说  接口中只能用try能不能抛,,why!

5 个回复

倒序浏览
public class DeadLock {
        public static void main(String[] args) {
                Object g =new Object();
                Object m =new Object();
                //访问同一个货物资源
                new Goods(m,g).start();
        }
}
class Goods extends Thread{
        private Object goods =new Object();
        private Object money =new Object();
       
        public Goods(){
               
        }
        public Goods(Object goods,Object money){
                super();
                this.goods =goods;
                this.money =money;
        }
        public void run()                 // 这里为什么不能直接throws呢???
                  {
                synchronized (goods) {
                        try {
                                Thread.sleep(200);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

}
class Mondy extends Thread{
       
}
回复 使用道具 举报
自己加个抛就知道了,好像运行时在main里还要抛,自己加一下
回复 使用道具 举报
因为Runnable是接口。你要是抛的话谁来解决呢?而且Runnable没有提供异常的解决方式。所以说只能try。具体的话,你可以看一下Runnable的源码。

点评

好 谢谢  发表于 2015-7-13 11:36
回复 使用道具 举报
圣尊说的很对,听圣尊的,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马