gpt4 book ai didi

java - 如何在线程中断Java时停止URL连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:13 25 4
gpt4 key购买 nike

我有一个访问 URL 的多线程程序。线程通过执行程序服务运行,当用户选择通过 GUI 退出时,程序会尝试通过调用 executor.shutdownNow() 来中断线程。但是,程序关闭需要很长时间,因为许多线程在 url.openStream() 调用中被阻塞,而且这不会抛出 InterruptedException,到目前为止,我不得不在调用 Thread.currentThread().isInterrupted() 之前和之后进行检查。

我想知道是否有更好的方法来在线程中断时中断 URL 连接?否则,让程序尽快关闭的最佳方法是什么?

请注意,我不希望在连接上设置超时,因为我希望在程序仍在运行时访问所有 URL。

最佳答案

如果您查看 URLConnection 的 Javadocs ,它会提示您:如果您在 URLConnection 上调用 getInputStream 或 getOutputStream,然后关闭这些流中的任何一个,它将关闭连接。如果您一直在等待 getInput/OutputStream 调用,那么我认为无能为力。但是如果你有流,关闭它(它会抛出一个 IOException 并释放任何在流上等待的线程)并且连接完成

仅供引用:我发现这种在您希望它超时或只想停止处理时关闭 InputStream 的方法非常有效,比使用 interrupt() 更有效

关于java - 如何在线程中断Java时停止URL连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com