HawtDispatch को एक सिस्टम विस्तृत निश्चित आकार थ्रेड पूल के रूप में डिज़ाइन किया गया है। यह औजार प्रदान करता है जावा निष्पादकों के 2 जायके:
- वैश्विक डिस्पैच कतार: प्रस्तुत Runnable वस्तुओं समवर्ती निष्पादित (आप एक
Executors.newFixedThreadPool(n)
निष्पादक का उपयोग कर एक ही प्रभाव प्राप्त) कर रहे हैं
- सीरियल डिस्पैच कतार: प्रस्तुत Runnable वस्तुओं क्रमानुसार क्रियान्वित कर रहे हैं (आप एक
Executors.newSingleThreadExecutor()
निष्पादक का उपयोग कर एक ही प्रभाव)
जावा निष्पादक मॉडल के विपरीत प्राप्त सभी वैश्विक और सीरियल प्रेषण कतारों एक भी तय आकार थ्रेड पूल का हिस्सा। आप अपनी थ्रेड गिनती को बढ़ाए बिना हजारों धारावाहिक प्रेषण कतारों का उपयोग कर सकते हैं। प्रतिक्रियाशील अभिनेता शैली अनुप्रयोगों को चलाने के लिए सीरियल प्रेषण कतारों का उपयोग एरलांग मेलबॉक्स जैसे किया जा सकता है।
चूंकि हौटडिस्चैच सभी वैश्विक और धारावाहिक कतार निष्पादन को संसाधित करने के लिए एक निश्चित आकार थ्रेड पूल का उपयोग कर रहा है, इसलिए निष्पादित किए जाने वाले सभी रननेबल कार्यों को गैर-अवरुद्ध होना चाहिए। एक तरह से यह नोडजेएस आर्किटेक्चर के समान है, इसके अलावा इसे केवल एक के बजाय एकाधिक धागे का उपयोग करना है।
नेटटी की तुलना में, हौटडिस्पेच वास्तव में सॉकेट डेटा को प्रोसेस करने के लिए एक ढांचा नहीं है। यह सॉकेट डेटा को एन्कोड/डीकोड, बफर और संसाधित करने के लिए एक ढांचा प्रदान नहीं करता है। यह सब करता है जब उपयोगकर्ता को गैर-अवरुद्ध सॉकेट पर पढ़ा या लिखा जा सकता है तो रननेबल उपयोगकर्ता को निष्पादित किया जाता है। सॉकेट डेटा को वास्तव में पढ़ने/लिखने के लिए यह आपके ऊपर आवेदन है।
स्रोत
2012-02-19 14:20:05
धन्यवाद @ हिराम। मुझे उम्मीद है कि आप उन लोगों को पेश करने के लिए हॉटडिस्पेच दस्तावेज़ों का विस्तार करने के लिए थोड़ा विस्तार करें जो ऐप्पल के libdispatch के बारे में कुछ नहीं जानते हैं। वाकई, यह विवरण एक अच्छी शुरुआत है। शायद कुछ ऐसा जो एचडी के लाभ पर केवल निष्पादकों का उपयोग करता है। – Shahbaz
@ शाहबाज जीसीडी के पास पूल के आकार को समायोजित करने का विशेषाधिकार है, इस पर निर्भर करता है कि कितने सीपीयू कोर उपलब्ध हैं और वर्तमान में वे कितने व्यस्त हैं। मैंने इसे थ्रेड गिनती में वृद्धि देखी है जब कतार में कई नौकरियां I/O बाध्य हैं, इसलिए CPU को व्यस्त रखना। हालांकि HawtDispatch ऐसा प्रतीत नहीं होता है। – adib