अच्छी तरह से अवरुद्ध आईओ का मतलब है कि दिया गया धागा आईओ पूरी तरह से प्राप्त होने तक और कुछ नहीं कर सकता है (सॉकेट के मामले में यह प्रतीक्षा लंबे समय तक हो सकती है)।
गैर-अवरुद्ध आईओ का अर्थ है कि आईओ अनुरोध सीधे कतारबद्ध है और फ़ंक्शन वापस आता है। वास्तविक आईओ को तब कर्नेल द्वारा कुछ बाद के पॉइंटर पर संसाधित किया जाता है।
आईओ को अवरुद्ध करने के लिए आपको या तो यह स्वीकार करने की आवश्यकता है कि आप प्रत्येक आईओ अनुरोध के लिए इंतजार कर रहे हैं या आपको प्रति अनुरोध धागे को आग लगाना होगा (जो बहुत जटिल हो जाएगा)।
गैर-अवरुद्ध आईओ के लिए आप एकाधिक अनुरोध भेज सकते हैं लेकिन आपको यह ध्यान में रखना होगा कि डेटा कुछ "बाद में" बिंदु तक उपलब्ध नहीं होगा। यह जांच रहा है कि डेटा वास्तव में पहुंचा है शायद सबसे जटिल हिस्सा है।
99% अनुप्रयोगों में आपको अपने आईओ ब्लॉक की देखभाल करने की आवश्यकता नहीं होगी। कभी-कभी आपको आईओ अनुरोध शुरू करने की अनुमति देने के अतिरिक्त प्रदर्शन की आवश्यकता होती है और फिर वापस आने से पहले कुछ और करना पड़ता है और उम्मीद है कि आईओ अनुरोध पूरा हो गया है।
वैसे भी, बस मेरी tuppence।
आईओ ब्लॉक होने पर प्रपत्र अनुप्रयोगों की देखभाल काफी 100% होती है। उपयोगकर्ताओं को लगी जीयूआई पसंद नहीं है। –
आपको एक अलग थ्रेड चलाने से रोक नहीं रहा है जो सभी आईओ क्रमशः और अवरुद्ध करता है ... – Goz