9

私はただ疑問に思っています:私のJavaアプリケーションでは、FTPサーバーに接続する必要があるたびに、新しいFTPClientオブジェクトを作成する必要がありますか、それとも1つのFTPClient()オブジェクトを作成して、接続するたびにそれを再利用する必要がありますFTPサーバー?

4

3 に答える 3

16

どちらも機能しますが、apache commons.netライブラリはスレッドセーフではないため、複数のスレッドで1つのクライアントを使用する場合は、アクセスを同期する必要があることに注意してください。

于 2011-07-31T22:43:01.743 に答える
4

コードが何をしなければならないか(接続の頻度、転送する必要のあるファイルの数など)を正確に知らなければ、言うのは難しいです。

私の個人的な意見は1つFTPClient()ですが、何かをする必要があるたびに接続/認証/転送/切断します(間に合理的なギャップがあると仮定します)。その理由は、FTPセッションの非アクティブタイムアウトがかなり短いことが多いためです。

于 2011-07-31T20:31:16.460 に答える
3

新しいサーバーへの接続であっても、新しい接続を作成するたびに新しいインスタンスが必要になることはないため、再利用する方が適切です。接続と切断の方法があなたのために仕事をすることができるからです。

したがって、できるだけ多くのオブジェクトを再利用します。

于 2011-07-31T20:29:57.840 に答える