gpt4 book ai didi

java - Java 7 WatchService 资源释放

转载 作者:搜寻专家 更新时间:2023-10-31 20:04:44 25 4
gpt4 key购买 nike

我正在使用 Java 7 WatchService 来监视目录。我不断更改正在观看的目录。我遇到了异常:

java.io.IOException:已达到网络 BIOS 命令限制。

50 个目录后。我确定在创建新的 WatchService 之前,我会在我创建的每个 WatchService 上调用 close()。

有谁知道释放 WatchService 的正确方法,这样您就不会遇到这个限制?

谢谢,

戴夫

最佳答案

我认为所有您需要做的就是close() 服务。我知道你说过你认为你已经这样做了,但我怀疑你错过了一些。例如,在出现异常的情况下,您可能无法关闭服务实例。您应该将 WatchService 实例视为其他 IO 资源,并在 finally block 中将其关闭;例如

WatchService ws = ...
try {
// use it ...
} finally {
ws.close();
}

或使用 Java 7“try with resource”语法。

try (WatchService ws = ...) {
// use it ...
}

WatchService 关闭时,它应该立即释放它持有的所有 O/S 级资源。


唯一的另一种可能性是您在 WatchService 实现中遇到了一些 Java 错误。

关于java - Java 7 WatchService 资源释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372888/

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