क्या जावा में एक गैर-अवरुद्ध फ़ाइल पढ़ी गई एपीआई है? यदि नहीं, तो सी ++ में से एक बनाना और जेएनआई के माध्यम से इसे जावा ऐप से कॉल करना बुद्धिमान होगा?गैर-अवरुद्ध फ़ाइल
उत्तर
नहीं, FileChannel
SelectableChannel
का विस्तार नहीं करता है।
शायद क्योंकि सभी ओएस इसका समर्थन नहीं करते हैं।
विंडोज करता है, और सिद्धांत रूप में आप विंडोज-विशिष्ट सी ++ लाइब्रेरी लिख सकते हैं और इसे जेएनआई के माध्यम से कॉल कर सकते हैं, लेकिन java.nio
के साथ इसे एकीकृत करने के लिए यह बहुत काम है।
मैं एक कार्यकर्ता धागा फ़ाइल सामग्री को pipe पर प्रतिलिपि बनाना चाहता हूं और पाइप के दूसरे छोर पर गैर-अवरुद्ध पढ़ता हूं।
मेरे मूल जवाब अब गलत है, जावा 7 में AsynchronousFileChannel
के अलावा
तुम अब भी select एक फ़ाइल पर नहीं कर सकते हैं के बाद से, लेकिन वहाँ अब कर रहे हैं दो अतुल्यकालिक फ़ाइल को पढ़ने विधि: एक है कि एक callback और another लेता है किदेता है।
एक पाइप को समर्पित थ्रेड मतदान करने के बजाय कॉलबैक विधि (और कॉलबैक से एक ईवेंट प्रेषित) का उपयोग करना क्लीनर हो सकता है।
असिंक्रोनस हालांकि गैर-अवरुद्ध के समान नहीं है। वास्तव में एसिंक्रोनस आईओ ऑपरेशंस [एक अनिवार्य थ्रेड पूल का उपयोग करें] (https://docs.oracle.com/javase/7/docs/api/java/nio/channels/AsynchronousChannelGroup.html) जहां गैर-अवरुद्ध आईओ स्पष्ट रूप से ' टी। – RecursiveExceptionException
आप इसके लिए क्या उपयोग करना चाहते हैं? – Elalfer
एक एमडीबी के अंदर फ़ाइल आईओ। – TheWolf
अवरुद्ध मॉडल का उपयोग करने में क्या गलत है? –