【发布时间】:2011-10-17 01:12:24
【问题描述】:
我只是想知道:在我的 Java 应用程序中,每次我需要连接到 FTP 服务器时,我应该创建一个新的 FTPClient 对象,还是应该创建一个 FTPClient() 对象并在每次我重用它时连接到 FTP 服务器?
【问题讨论】:
标签: java android performance ftp-client apache-commons-net
我只是想知道:在我的 Java 应用程序中,每次我需要连接到 FTP 服务器时,我应该创建一个新的 FTPClient 对象,还是应该创建一个 FTPClient() 对象并在每次我重用它时连接到 FTP 服务器?
【问题讨论】:
标签: java android performance ftp-client apache-commons-net
两者都可以,但 apache commons.net 库是 not thread safe,因此如果您确实使用具有多个线程的客户端,请注意您必须同步对它的访问。
【讨论】:
如果不确切知道您的代码必须做什么(连接频率、需要传输多少文件等),很难说。
我的个人意见是FTPClient(),但每次您需要做某事时都连接/验证/传输/断开连接(假设两者之间会有合理的差距)。原因是 FTP 会话通常具有相当短的不活动超时。
【讨论】:
重用会更好,因为每次创建新连接时都不需要新实例,即使是到新服务器也是如此。因为 connect 和 disconnect 方法可以为您完成这项工作。
所以尽可能多地重用对象。
【讨论】: