我有一个调用第三方方法的java应用程序,可以无限制地阻塞而不会抛出异常。
是否可以将我的方法调用包装在超时块(或线程或其他构造)中,以便在我假设调用永远不会返回后重新获得控制权?
答案 0 :(得分:1)
ThreadPoolExecutor应该做你需要的。使用awaitTermination方法:
阻止所有任务在关闭后完成执行 请求,或发生超时,或当前线程被中断, 以先到者为准。
答案 1 :(得分:0)
所有这些多线程肯定是一个答案,但想想如果你的应用程序不是多线程的,你可以只存储发送请求的时刻的时间戳,并根据当前的时间戳检查它。当然你需要一个线程来跟踪时间。但总而言之,您可以使用相同的线程来实现您需要的多个函数调用。所以不要继续在你的类中实现runnable。只需制作一个跟踪线程。