第三方方法调用挂起时超时java函数

时间:2011-08-21 18:37:31

标签: java multithreading

我有一个调用第三方方法的java应用程序,可以无限制地阻塞而不会抛出异常。

是否可以将我的方法调用包装在超时块(或线程或其他构造)中,以便在我假设调用永远不会返回后重新获得控制权?

2 个答案:

答案 0 :(得分:1)

ThreadPoolExecutor应该做你需要的。使用awaitTermination方法:

  

阻止所有任务在关闭后完成执行   请求,或发生超时,或当前线程被中断,   以先到者为准。

答案 1 :(得分:0)

所有这些多线程肯定是一个答案,但想想如果你的应用程序不是多线程的,你可以只存储发送请求的时刻的时间戳,并根据当前的时间戳检查它。当然你需要一个线程来跟踪时间。但总而言之,您可以使用相同的线程来实现您需要的多个函数调用。所以不要继续在你的类中实现runnable。只需制作一个跟踪线程。