Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WatchService是每个JVM的还是一个应用程序可以启动多个JVM?_Java_Watchservice - Fatal编程技术网

Java WatchService是每个JVM的还是一个应用程序可以启动多个JVM?

Java WatchService是每个JVM的还是一个应用程序可以启动多个JVM?,java,watchservice,Java,Watchservice,这是创建一个新的watchService还是只提供一个singleton对象 它说: @退回新的手表服务 我读到的一些帖子让我认为可能只有1个线程,因此如果执行.take()或.poll()一个线程可能会获得另一个线程的watchKey事件。我想也许我需要用一个,但现在我不太确定,因为我有2个左右的运行,他们似乎工作,但我没有明确测试它 有人知道你是否可以在一个应用程序中使用多个watchServices吗?从这里的源代码来看,似乎每次调用它都会返回一个新的watchServices 这个这里指

这是创建一个新的watchService还是只提供一个singleton对象

它说:

@退回新的手表服务

我读到的一些帖子让我认为可能只有1个线程,因此如果执行
.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;
    }

}