Apache Commons NET: Должен ли я создать новый объект FTPClient для каждого подключения или повторного использования?

Мне просто интересно: в моем приложении Java каждый раз, когда мне нужно подключиться к FTP-серверу, я должен создать новый объект FTPClient или создать один объект FTPClient () и повторно использовать его при каждом подключении к FTP-сервер?

Solutions Collecting From Web of "Apache Commons NET: Должен ли я создать новый объект FTPClient для каждого подключения или повторного использования?"

Повторное использование было бы лучше, так как вам не понадобится новый экземпляр каждый раз, когда вы создаете новое соединение, даже на новый сервер. Потому что методы подключения и отключения могут выполнить эту работу за вас.

Поэтому повторно используйте столько объектов, сколько сможете.

Оба будут работать, но библиотеки apache commons.net не являются потокобезопасными , поэтому, если вы используете один клиент с несколькими потоками, имейте в виду, что вам придется синхронизировать доступ к нему.

Не зная точно, что должен делать ваш код (как часто он подключается, сколько файлов ему нужно перевести и т. Д.), Это трудно сказать.

Мое личное мнение было бы одним FTPClient() но подключаться / аутентифицироваться / переносить / отключать каждый раз, когда вам нужно что-то делать (при условии, что между ними будет разумный разрыв). Причиной является то, что сеансы FTP часто имеют довольно короткие тайм-ауты бездействия.