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

Jim*_*aet 7 vfs apache-commons-vfs

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

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

FileSystemManager fsManager = VFS.getManager();
Run Code Online (Sandbox Code Playgroud)

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

第二个问题是关于在finally块中正确释放资源:我在Javadoc API中找到以下方法:

但我不清楚哪些资源通常应该被关闭.

eck*_*kes 1

文件管理器和文件系统对象应该是线程安全的,但是我不会把我的生命押在它上面。一些内部锁定(特别是围绕重命名)取决于 FileObject 的实例,因此您不应该使用不保留这些实例的 FileCache(即默认缓存很好)。

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

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