मेरे पास एक जावा प्रक्रिया है जो एक FileReader का उपयोग करके एक फ़ाइल खोलता है। मैं इस फ़ाइल को खोलने से किसी अन्य (जावा) प्रक्रिया को कैसे रोक सकता हूं या कम से कम उस दूसरी प्रक्रिया को सूचित कर सकता हूं कि फाइल पहले से ही खुली हुई है? क्या यह स्वचालित रूप से दूसरी प्रक्रिया को अपवाद बनाता है यदि फ़ाइल खुली है (जो मेरी समस्या हल करती है) या क्या मुझे स्पष्ट रूप से किसी तरह के झंडे या तर्क के साथ पहली प्रक्रिया में इसे खोलना है?
स्पष्टीकरण देना:
मेरे पास एक जावा ऐप है जो एक फ़ोल्डर को सूचीबद्ध करता है और इसे संसाधित करने के लिए लिस्टिंग में प्रत्येक फ़ाइल खोलता है। यह प्रत्येक फाइल को एक के बाद एक प्रोसेस करता है। प्रत्येक फ़ाइल के प्रसंस्करण में इसे पढ़ने और सामग्री के आधार पर कुछ गणनाएं करने और लगभग 2 मिनट लगते हैं। मेरे पास एक और जावा ऐप भी है जो समान काम करता है लेकिन इसके बजाय फाइल पर लिखता है। मैं जो चाहता हूं, उसी समय इन ऐप्स को चलाने में सक्षम हो सकता हूं इसलिए परिदृश्य इस तरह से चलता है। ReadApp फ़ोल्डर को सूचीबद्ध करता है और फ़ाइलों को ए, बी, सी पाता है। यह फ़ाइल ए को खोलता है और रीडिंग शुरू करता है। WriteApp फ़ोल्डर को सूचीबद्ध करता है और फ़ाइलें A, B, C. को ढूँढता है। यह फ़ाइल A को खोलता है, देखता है कि खुली हुई है (अपवाद या किसी भी तरह से) खुली हुई है और फ़ाइल में जाती है। B. ReadApp फ़ाइल A को समाप्त करती है और इसे जारी रखती है। यह देखता है कि खुला है और सी के लिए जारी है। यह महत्वपूर्ण है कि WriteApp doesn ' t लिखिए जबकि ReadApp एक ही फाइल या इसके विपरीत पढ़ रहा है। वे विभिन्न प्रक्रियाएं हैं।