社区
Java SE
帖子详情
wait()异常问题
tjb1216
2010-03-26 09:42:26
try {
wait();
} catch (InterruptedException e) {
System.out.println("这是您的电影票,收您10块,找您5块");
num5--;
num10++;
}
notifyAll();
上面是代码中的片段,请问各位,为什么没有执行catch里面的内容呢?
...全文
110
3
打赏
收藏
wait()异常问题
try { wait(); } catch (InterruptedException e) { System.out.println("这是您的电影票,收您10块,找您5块"); num5--; num10++; } notifyAll(); 上面是代码中的片段,请问各位,为什么没有执行catch里面的内容呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqbz
2010-03-26
打赏
举报
回复
需要另外一个线程去notify,当notify后,会继续正常运行程序,不会抛异常.
楼主可以参考经典的线程教学程序:生产者-消费者的例子.
tjb1216
2010-03-26
打赏
举报
回复
[Quote=引用 1 楼 java_cxrs 的回复:]
Wait方法与interrupt方法
当以wait方法等待时,与sleep一样可以取消.使用interrupt方法,可以对wait中的线程传达"不用等notify/notifyAll了,从等待中出来"的信号.
但是当线程wait时,有一点需要注意的,那就是锁的问题.线程进入等待状态时,会将自己拥有的锁释放,当对wait中的线程调用interrupt方法是,等待线程会重新获取锁,然后……
[/Quote]
你直接告诉我怎样,让它抛出异常咯,我系初学者咧
不善^
2010-03-26
打赏
举报
回复
Wait方法与interrupt方法
当以wait方法等待时,与sleep一样可以取消.使用interrupt方法,可以对wait中的线程传达"不用等notify/notifyAll了,从等待中出来"的信号.
但是当线程wait时,有一点需要注意的,那就是锁的问题.线程进入等待状态时,会将自己拥有的锁释放,当对wait中的线程调用interrupt方法是,等待线程会重新获取锁,然后再抛出interruptedException.获取锁定之前,并无法抛出InterruptedException异
Java SE
62,568
社区成员
307,521
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告