gpt4 book ai didi

java - 如何取消延迟的 FileInputStream 文件打开

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:21 25 4
gpt4 key购买 nike

有没有办法取消长时间运行的文件打开操作?由于防病毒扫描、映射网络驱动器等而导致长时间延迟。

new FileInputStream("a_file_that_the_antivirus_" + 
"will_process_for_minutes_before_returning.jar")
// process the contents...

在上面的示例中,第一行可以阻塞,但我不知道有什么方法可以异步取消该操作(如果我们得到新的 inputstream 对象,取消就像 in.close() 一样简单,但这个问题与这种情况无关)。

是否可以中断打开进程(也许使用 NIO),或者是否已经有一种机制(例如简单的 Thread.interrupt())来取消打开?

操作系统:主要是 Windows XP+、Java 6+,阻塞通常是由于一些更大、更深的 jar 文件 - 例如 Eclipse 的插件或我自己的复杂应用程序。

最佳答案

假设没有解决方案(我找不到解决方案,我怀疑我们陷入了操作系统级调用),在工作线程中实际进行打开尝试并最终超时等待该线程会有多糟糕。然后,您的主处理可以继续,而在后台,工作线程最终将完成其打开,但立即再次关闭文件 - 没有人会再等待它。

是的,它会占用 FD 资源,但数量可能不会很大 - 而且无论如何,您可以限制工作线程的数量来控制影响。

关于java - 如何取消延迟的 FileInputStream 文件打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248397/

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