【问题标题】:Apache Commons NET: Should I create a new FTPClient object on each connection or reuse one?Apache Commons NET:我应该在每个连接上创建一个新的 FTPClient 对象还是重用一个?
【发布时间】:2011-10-17 01:12:24
【问题描述】:

我只是想知道:在我的 Java 应用程序中,每次我需要连接到 FTP 服务器时,我应该创建一个新的 FTPClient 对象,还是应该创建一个 FTPClient() 对象并在每次我重用它时连接到 FTP 服务器?

【问题讨论】:

    标签: java android performance ftp-client apache-commons-net


    【解决方案1】:

    两者都可以,但 apache commons.net 库是 not thread safe,因此如果您确实使用具有多个线程的客户端,请注意您必须同步对它的访问。

    【讨论】:

      【解决方案2】:

      如果不确切知道您的代码必须做什么(连接频率、需要传输多少文件等),很难说。

      我的个人意见是FTPClient(),但每次您需要做某事时都连接/验证/传输/断开连接(假设两者之间会有合理的差距)。原因是 FTP 会话通常具有相当短的不活动超时。

      【讨论】:

        【解决方案3】:

        重用会更好,因为每次创建新连接时都不需要新实例,即使是到新服务器也是如此。因为 connect 和 disconnect 方法可以为您完成这项工作。

        所以尽可能多地重用对象。

        【讨论】:

        • 谢谢你,只是确保:)
        • 但是,如果您想同时建立连接,您可能需要多个实例。
        • 您有关于创建新实例的成本的任何数据,还是只是猜测?
        • 谢谢,但我一次只需要连接一个 FTP :)
        猜你喜欢
        • 2012-07-07
        • 1970-01-01
        • 2019-09-23
        • 1970-01-01
        • 2012-07-15
        • 2012-08-07
        • 2015-12-25
        • 2014-10-10
        • 2019-04-26
        相关资源
        最近更新 更多