2013-08-08 23 views
7

Tôi đang xem xét sử dụng Apache Commons VFS cho dự án cần chuyển tệp giữa máy chủ cục bộ và máy chủ từ xa qua ftp, sftp và https.Apache Commons VFS an toàn chủ đề và quản lý tài nguyên

Các ví dụ sử dụng tiêu chuẩn đang nhận được FileSystemManager từ một phương pháp tĩnh

FileSystemManager fsManager = VFS.getManager(); 

Có an toàn để sử dụng FileSystemManager cùng trên nhiều chủ đề?

Và một câu hỏi thứ hai là về đúng giải phóng các nguồn lực trong một khối finally: Tôi tìm thấy những phương pháp sau đây trong API Javadoc:

Nhưng nó không phải là cle ar cho tôi tài nguyên nào trong số những tài nguyên này thường được đóng lại.

+0

Tôi có những nghi ngờ tương tự vào lúc này, tôi đã lang thang nếu bạn đi đến kết luận nào? –

Trả lời

1

Trình quản lý tệp và đối tượng hệ thống tệp được cho là chuỗi an toàn, tuy nhiên tôi sẽ không đặt cược trực tiếp trên đó. Một số khóa nội bộ (đặc biệt là xung quanh đổi tên) phụ thuộc vào trường hợp của FileObject, vì vậy bạn không nên sử dụng một FileCache mà không giữ những người (tức là bộ nhớ cache mặc định là tốt).

Tệp Nội dung và luồng không được sử dụng đồng thời (trên thực tế FileContent.close() chẳng hạn chỉ hoạt động trên luồng của chuỗi hiện tại).

Có một số rò rỉ tài nguyên trong khu vực này (hy vọng tất cả được sửa trong 2.1-SNAPSHOT).

0

VFS.getManager cung cấp một trình quản lý đơn lẻ. duy nhất truy cập vào hệ thống tập tin, vì vậy tôi sẽ không khuyên bạn sử dụng nó từ môi trường đa luồng. Bạn có thể tạo DefaultFileSystemManager của riêng bạn và sử dụng phương thức đóng khi bạn hoàn tất.

Các vấn đề liên quan