请问java有没有监控"一段代码是否在一定时间内响应"的程序
我的程序中有一条创建excel的workbook对象的语句。但有些excel文件被破坏了,其导致我的语句一直没有返回,也没有异常抛出,整个程序就死在那里了。希望能有个机制,将这条创建语句监控起来,如果到一定时间(如30秒)没有响应,则能由我编写的代码对其进行处理(如抛出一个我自创的异常)。望大家帮忙! 问题点数:100、回复次数:6Top
1 楼irvine007(┣━┫Rvine)回复于 2005-09-03 14:41:19 得分 10
不知道楼主使用什么类库来处理excel的。
一个好的类库,总能捕捉到异常类的。
楼主不妨把代码贴出来看看。
Top
2 楼zephyr13()回复于 2005-09-03 14:57:19 得分 0
现在网吧,没法帖详细代码上来,大概讲一下吧:我是用jxl做excel的读取的,出问题的excel文件创建File对象没有问题,但创建jxl里的workbook对象就会导致无响应.
另,用多线程(父线程设超时时间,子线程来建立workbook对象)可能可以解决这个问题,但我的这段程序本身就已经在一个子线程里了,这个程序需要比较高的执行效率,所以希望不再创建线程.Top
3 楼lipeipei(lipei)回复于 2005-09-04 01:11:17 得分 50
多个线程不会影响效率的。
任何程序都是在某个线程中执行。一般如果要仿制某个线程被锁死就需要让别的线程监控它。
除非线程自身能够脱离锁死状态否则就会一直呆在那里,无法自救的。
当然你要是能够修改一下jxl的源代码加入响应的功能也行。
楼主不要在这个问题上钻牛角尖。
要用线程的时候就用把Top
4 楼jblz(jblz)回复于 2005-09-04 09:03:42 得分 0
我来upTop
5 楼shenpipi(皮皮)回复于 2005-09-04 09:21:54 得分 40
有可能在创建jxl里的workbook对象的时候那个函数因为某种原因会永远block在那里啊,这样的话,除了用多线程还能有什么好办法啊?
另外,用多线程不会影响效率的,当然设计槽糕的话,不用多线程照样低效Top
6 楼zephyr13()回复于 2005-09-04 20:27:33 得分 0
暂时用线程方法先解决了,看客户是否满意了,感谢大家Top




