java - Future.get() 和 InterruptedException 异步线程

标签 java multithreading asynchronous timeout future

我在带有 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/

相关文章:

java - 如何在SWT java中在 Canvas 内的图像上绘制带边框的透明复合 Material

java - Wildfly 8,异步方法上 UriInfo 上下文的问题

node.js - 了解 node.js 回调结构

c++ - 将数据从一个线程传递到另一个线程的最快方法

C++:如何异步调用同步库调用?

python - 使 PyDev 挂起以在 MainThread 以外的线程上工作

javascript - $.when.apply($, someArray) 是做什么的?

Java:获取给定叶证书的证书颁发者链的 API?

Java无法访问NFS共享中的文件

java - 如何调试 Spring MVC tomcat 应用程序?