gpt4 book ai didi

vfs - Apache Commons VFS线程安全性和资源管理

转载 作者:行者123 更新时间:2023-12-04 12:54:48 33 4
gpt4 key购买 nike

我正在研究将Apache Commons VFS用于需要通过ftp,sftp和https在本地服务器和远程服务器之间传输文件的项目。

标准用法示例是从静态方法获取FileSystemManager。

FileSystemManager fsManager = VFS.getManager();

在多个线程中使用相同的FileSystemManager是否安全?

第二个问题是有关在finally块中正确释放资源的问题:我在Javadoc API中找到以下方法:
  • http://commons.apache.org/proper/commons-vfs/apidocs/org/apache/commons/vfs2/FileObject.html#close()
  • http://commons.apache.org/proper/commons-vfs/apidocs/org/apache/commons/vfs2/FileSystemManager.html#closeFileSystem(org.apache.commons.vfs2.FileSystem)
  • http://commons.apache.org/proper/commons-vfs/apidocs/org/apache/commons/vfs2/FilesCache.html#close()
  • http://commons.apache.org/proper/commons-vfs/apidocs/org/apache/commons/vfs2/impl/DefaultFileSystemManager.html#close()

  • 但是我不清楚这些资源中的哪些通常应该关闭。

    最佳答案

    文件管理器和文件系统对象应该是线程安全的,但是我不敢相信它。某些内部锁定(尤其是围绕重命名的锁定)取决于FileObject的实例,因此您不应使用不保留这些锁定的FileCache(即默认高速缓存就可以了)。

    FileContent和流不应同时使用(实际上FileContent.close()例如仅作用于当前线程的流)。

    此区域中存在一些资源泄漏(希望已在2.1-SNAPSHOT中修复)。

    关于vfs - Apache Commons VFS线程安全性和资源管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134857/

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