wait()异常问题

tjb1216 2010-03-26 09:42:26
try {
wait();
} catch (InterruptedException e) {
System.out.println("这是您的电影票,收您10块,找您5块");
num5--;
num10++;
}
notifyAll();
上面是代码中的片段,请问各位,为什么没有执行catch里面的内容呢?
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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异

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧