Tôi chỉ tự hỏi: trong ứng dụng Java của mình, mỗi khi tôi cần kết nối với máy chủ FTP, tôi có nên tạo đối tượng FTPClient mới hay tôi nên tạo một đối tượng FTPClient() và sử dụng lại mỗi khi tôi kết nối đến một máy chủ FTP?Apache Commons NET: Tôi có nên tạo một đối tượng FTPClient mới trên mỗi kết nối hoặc sử dụng lại không?
Trả lời
Việc tái sử dụng sẽ tốt hơn vì bạn không cần một phiên bản mới mỗi lần bạn tạo kết nối mới, ngay cả với máy chủ mới. Bởi vì các phương thức kết nối và ngắt kết nối có thể thực hiện công việc cho bạn.
Vì vậy, hãy sử dụng lại càng nhiều đối tượng càng tốt.
Không biết chính xác mã của bạn phải làm gì (tần suất nó kết nối, cần bao nhiêu tệp cần truyền ...) khó nói.
Ý kiến cá nhân của tôi sẽ là FTPClient()
nhưng kết nối/xác thực/chuyển/ngắt kết nối mỗi lần bạn cần làm điều gì đó (giả sử sẽ có khoảng cách hợp lý giữa). Lý do là các phiên FTP thường có thời gian chờ không hoạt động khá ngắn.
Cả hai sẽ hoạt động, nhưng thư viện commons.net apache là not thread safe, vì vậy nếu bạn sử dụng một khách hàng có nhiều luồng, hãy lưu ý rằng bạn sẽ phải đồng bộ hóa quyền truy cập vào nó.
Cảm ơn bạn, chỉ cần đảm bảo :) – AlexPriceAP
Tuy nhiên, nếu bạn muốn thực hiện các kết nối đồng thời, bạn có thể cần nhiều phiên bản. –
Bạn có bất kỳ dữ liệu nào về chi phí tạo một cá thể mới hay đây chỉ là phỏng đoán? –