2012-01-29 9 views
11

मैं JDK 7 डॉक्स (here) में चैनल के बारे में पढ़ रहा हूँ, और इस पर ठोकर खाई:"मल्टीप्लेक्ड, गैर-अवरुद्ध I/O, [..] थ्रेड-उन्मुख, अवरुद्ध I/O से अधिक स्केलेबल क्यों है?

मल्टिप्लेक्स, गैर अवरुद्ध I/O, जो धागा उन्मुख, अवरुद्ध मैं तुलना में बहुत अधिक स्केलेबल है/हे, [...]

इसे आसानी से समझा करने के लिए यह क्यों इतना है के रूप में है?

उत्तर

3

"अवरुद्ध" का अर्थ है कि धागे को संसाधन के उपलब्ध होने तक जितना आवश्यक हो सके इंतजार करना पड़ता है ... जिसका अर्थ है, परिभाषा के अनुसार, धागे संसाधनों की प्रतीक्षा में बैठे रहेंगे। गैर-अवरुद्ध इस तरह की चीज़ से बचाता है।

आम तौर पर, गैर-अवरुद्ध समाधान ट्रिकियर, हैं लेकिन वे संसाधन विवाद से बचते हैं, जिससे इसे स्केल करना बहुत आसान हो जाता है। (जैसा कि कहा गया, Channel की बात यह कम मुश्किल बनाने के लिए है।)

+1

गैर-अवरुद्ध I/O का मतलब यह नहीं है कि थ्रेड प्रतीक्षा नहीं करते हैं, इसका मतलब यह है कि प्रतीक्षा ऑपरेशन I/O ऑपरेशन से अलग है। –

6

क्योंकि थ्रेड स्टैक आमतौर पर एसिंक I/O कनेक्शन का समर्थन करने के लिए आवश्यक डेटा संरचना से काफी बड़ा होता है। इसके अलावा, हजारों धागे शेड्यूलिंग अक्षम है।

+3

सामान्य तर्क है कि है, लेकिन: मैं अपने डेस्कटॉप मशीन पर धागे की हजारों चला सकते हैं, लेकिन मैं अभी तक किसी भी समस्या को देखने के लिए है, जहां मैं वास्तव में एक ही मशीन से हजारों कनेक्शनों की सेवा कर सकता है बिना किसी रुकावट के। तो यह मेरे लिए एक कमजोर तर्क लगता है। इसके अलावा चयनकर्ताओं के साथ एनआईओ नॉनब्लॉकिंग [अक्सर इतना अच्छा विकल्प नहीं है] (http://www.mailinator.com/tymaPaulMultithreaded.pdf) – Voo

+0

@Voo: कुछ कनेक्शन एक समय में दस मिनट के लिए निष्क्रिय हो सकते हैं, लेकिन फिर भी खुला। –

+1

@ वू, मुझे संदेह है कि आपके पास हजारों रननेबल (केवल निष्क्रिय नहीं) धागे हैं। संदर्भ स्विच भी सस्ता है अभी भी एक टीएलबी कैश w/अधिक कैश याद आती है। हजारों कनेक्शनों पर खुद को काम करते हुए मैं कहूंगा कि दोहरी सॉकेट xeon पर लगभग 2k उपयोगकर्ता/लगभग 85k संदेश/सेकेंड की सेवा करना 20% CPU (सभी सीपीयूएस) की तरह होता है ... इसके अलावा एनआईओ 'निष्पक्ष' यातायात वितरण के लिए भी अनुमति देता है जो बहुत है महत्वपूर्ण और अक्सर अनदेखा किया जाता है क्योंकि यह ग्राहकों के लिए स्थिर विलंबता सुनिश्चित करता है। (आईआईआरसी बेंचमार्क विलंबता को मापता नहीं है) – bestsss

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