我在带有 httpClient 的应用程序中使用异步线程。我像这样使用 Future Api 调用电话
mStrResults = (String) rssFuture.get();
此调用尝试检索从我的 Callable httpClient call() 方法返回的 html 字符串。
不过,我想做的是确保 get 方法在执行 call() 方法时不会等待太久。我应该在调用 rssFuture.get() 时传递超时参数还是只用 InterruptedException catch block 包围?
还有异步线程在抛出 InterruptedException 之前等待的默认时间吗?如果可以,我可以设置自定义值吗?
最佳答案
您应该在调用 rssFuture.get()
时传递超时参数并捕获 TimeoutException。 InterruptedException 只有在运行您的call
的线程被Thread.interrupt
方法中断或者如果您调用cancel(true)
时才会发生Future 对象中的方法。
关于java - Future.get() 和 InterruptedException 异步线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/352954/