Java WatchService是每个JVM的还是一个应用程序可以启动多个JVM?
这是创建一个新的watchService还是只提供一个singleton对象 它说: @退回新的手表服务 我读到的一些帖子让我认为可能只有1个线程,因此如果执行Java WatchService是每个JVM的还是一个应用程序可以启动多个JVM?,java,watchservice,Java,Watchservice,这是创建一个新的watchService还是只提供一个singleton对象 它说: @退回新的手表服务 我读到的一些帖子让我认为可能只有1个线程,因此如果执行.take()或.poll()一个线程可能会获得另一个线程的watchKey事件。我想也许我需要用一个,但现在我不太确定,因为我有2个左右的运行,他们似乎工作,但我没有明确测试它 有人知道你是否可以在一个应用程序中使用多个watchServices吗?从这里的源代码来看,似乎每次调用它都会返回一个新的watchServices 这个这里指
.take()
或.poll()
一个线程可能会获得另一个线程的watchKey事件。我想也许我需要用一个,但现在我不太确定,因为我有2个左右的运行,他们似乎工作,但我没有明确测试它
有人知道你是否可以在一个应用程序中使用多个watchServices吗?从这里的源代码来看,似乎每次调用它都会返回一个新的watchServices
这个
这里指的是对象(我在Windows JVM上检查这个),它是静态变量,因此每个JVM都是一个
class WindowsFileSystem
extends FileSystem
{
..............................
..............................
@Override
public WatchService newWatchService()
throws IOException
{
return new WindowsWatchService(this);
}
}
因此,我们可以得出这样的结论:对象是全局的,但是WatchService可以创建任意多个对象—所有对象都引用全局文件系统。“New”表示它每次都创建一个新对象;在方法命名方面,我们使用了约定,但这种约定并没有得到普遍遵守。你从哪里得到了低源代码,openJdk或其他东西?我点击(netbeans)IDE,我得到:公共抽象类文件系统实现了Closeable,公共接口WatchService扩展了CloseableYes,即OpenJDK。
class WindowsFileSystem
extends FileSystem
{
..............................
..............................
@Override
public WatchService newWatchService()
throws IOException
{
return new WindowsWatchService(this);
}
}
public final class FileSystems {
private FileSystems() {
}
.................
.................
public static FileSystem getDefault() {
return DefaultFileSystemHolder.defaultFileSystem;
}
}