wait为什么总是抛出这个异常?

National 2001-11-21 05:34:14
如何解决?让程序延迟?
try{wait(5);
out.print("success");}
catch(Exception ex){out.println("wrong:"+ex);}
---------------------------------------------------------------
顺便问一下,如果一个对象为多个用户共享(eg. application),那么当这些用户同时执行此单个实例的一个函数时,会否有冲突?如果有,那么我加锁之后,怎样让暂时无法运行的进程等待呢?我尝试上面的方法,总是抛出
--
wrong:java.lang.IllegalMonitorStateException这个异常。
大家帮我!
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
National 2001-11-22
  • 打赏
  • 举报
回复
万分感谢!
ChDw 2001-11-22
  • 打赏
  • 举报
回复
如果你只是想暂停就不要用wait,只要用Thread.sleep(...)这个静态方法就可以了
如果你想要wait()的话,必须先取得这个对象的lock
sychronize(this) {
this.wait(1000);
}
National 2001-11-22
  • 打赏
  • 举报
回复
比如我用的对象是apllication(jsp)对象,生存周期为服务器运行期间,之中之产生一个实例,每个用户均可以使用其中的函数和变量。其中一个函数是执行数据库更新,我担心其中一个用户正在操作Stmt的时候,其他的用户不能使用此stmt,所以加了锁和wait.
Sychronize如何修饰函数?我先去看看资料去..hehe,待会再来!
ghw 2001-11-21
  • 打赏
  • 举报
回复
"一个对象为多个用户共享" "用户同时执行此单个实例的一个函数时" ???
没说清楚

那个类的方法用sychronized修饰了吗?
gflei 2001-11-21
  • 打赏
  • 举报
回复
看看有关线程部分,那里面讲得比较清楚,你的问题属于线程同步

62,614

社区成员

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

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