2013-08-08 6 views
7

मैं एक परियोजना के लिए Apache Commons VFS का उपयोग कर रहा हूं जिसे स्थानीय सर्वर और दूरस्थ सर्वर के बीच फ़ाइलों को FTP, sftp और https के माध्यम से स्थानांतरित करने की आवश्यकता होगी।अपाचे कॉमन्स वीएफएस थ्रेड सुरक्षा और संसाधन प्रबंधन

मानक उपयोग के उदाहरण एक स्थिर विधि

FileSystemManager fsManager = VFS.getManager(); 

से FileSystemManager हो रही है यह एक से अधिक थ्रेड में एक ही FileSystemManager उपयोग करने के लिए सुरक्षित है?

और एक दूसरे प्रश्न के बारे में ठीक से एक अंत में ब्लॉक में संसाधनों को रिहा किया जाता है:

: मैं जावाडोक एपीआई में निम्न विधियों में लगता है

लेकिन यह साफ़ नहीं है मेरे लिए आरआर इन संसाधनों में से कौन सा आम तौर पर बंद होना चाहिए।

+0

मुझे इस समय एक ही संदेह है, अगर आप किसी निष्कर्ष पर आए तो मैं घूम रहा था? –

उत्तर

1

फ़ाइल प्रबंधक और फाइल सिस्टम ऑब्जेक्ट्स को थ्रेड सुरक्षित माना जाता है, हालांकि मैं इस पर अपना लाइव शर्त नहीं लगाऊंगा। कुछ आंतरिक लॉकिंग (विशेष रूप से नामों के आसपास) FileObject के उदाहरण पर निर्भर करते हैं, इसलिए आपको फ़ाइलकैच का उपयोग नहीं करना चाहिए जो उन्हें नहीं रखता है (यानी डिफ़ॉल्ट कैश ठीक है)।

फ़ाइल सामग्री और धाराओं का एक साथ उपयोग नहीं किया जाना चाहिए (वास्तव में FileContent.close() उदाहरण के लिए केवल वर्तमान धागे की धाराओं पर कार्य करता है)।

इस क्षेत्र में कुछ संसाधन रिसाव हैं (उम्मीद है कि सभी 2.1-स्नैपशॉट में तय किए गए हैं)।

0

VFS.getManager एक एकल प्रबंधक यानी प्रदान करता है। फाइल सिस्टम के लिए एकल पहुंच, इसलिए मैं इसे बहुप्रचारित वातावरण से उपयोग करने की अनुशंसा नहीं करता। आप अपना खुद का DefaultFileSystemManager बना सकते हैं और जब आप कर लेंगे तो करीबी विधि का उपयोग करें।

संबंधित मुद्दे