मैं नेटवर्क पर डिवाइस प्रबंधित करने वाले कार्यों को लागू करने के लिए संभावित रूप से सैकड़ों धागे के उपयोग पर विचार कर रहा हूं।सैकड़ों निष्क्रिय धागे का प्रभाव
यह एक सी ++ एप्लिकेशन है जो एक लिनक्स कर्नेल के साथ एक पावरपीसी प्रोसेसर पर चल रहा है।
प्रारंभिक चरण के बाद जब प्रत्येक कार्य डिवाइस से डेटा को डेटा में कॉपी करने के लिए सिंक्रनाइज़ेशन करता है, तो कार्य निष्क्रिय हो जाता है, और केवल अलार्म प्राप्त होने पर ही जागता है, या कुछ डेटा (कॉन्फ़िगरेशन) को बदलने की आवश्यकता होती है, जो कि है प्रारंभ चरण के बाद दुर्लभ। एक बार सभी कार्य "निष्क्रिय" चरण तक पहुंचने के बाद, मुझे उम्मीद है कि प्रति सेकंड केवल कुछ ही जागने की आवश्यकता होगी।
तो, मेरी मुख्य चिंता यह है कि, अगर मेरे पास सैकड़ों धागे हैं तो वे निष्क्रिय होने के बाद सिस्टम पर नकारात्मक प्रभाव डालेंगे?
धन्यवाद।
amsoसंपादित करें:
मैं जवाब है कि मुझे मिल गया के आधार पर सवाल अद्यतन करने कर रहा हूँ। धन्यवाद दोस्तों। तो ऐसा लगता है कि धागे के एक टन (आईओ अवरुद्ध, प्रतीक्षा, सो, इत्यादि), प्रति से, प्रतिक्रिया के संदर्भ में सिस्टम पर कोई प्रभाव नहीं पड़ेगा। बेशक , वे एक धागा के ढेर और TLS डेटा के लिए अतिरिक्त पैसे खर्च होगा, लेकिन है कि लंबे समय के रूप ठीक है के रूप में हम बात पर अधिक स्मृति फेंक (जिससे यह अधिक €€€)
लेकिन फिर भी, अन्य समस्याएं हैं, की गणना की जाएगी के लिये। इंतजार कतारों या अन्य समान संसाधनों की आवश्यकता के कारण, 100 थ्रेड प्रतीक्षा करने से कर्नेल पर स्मृति उपयोग में वृद्धि होगी। एक विलंबता मुद्दा भी है, जो गैर-निर्धारिती दिखता है। प्रत्येक समाधान की प्रतिक्रिया और स्मृति उपयोग की जांच करने के लिए इसे मापना और तुलना करना चाहिए।
अंत में, सैकड़ों धागे का पूरा विचार जो अधिकतर निष्क्रिय हो जाएगा, को थ्रेड पूल की तरह मॉडलिंग किया जा सकता है। इससे कुछ कोड रैखिकता कम हो जाती है लेकिन नाटकीय रूप से समाधान की स्केलेबिलिटी बढ़ जाती है और प्रोपर्स केयर के साथ प्रदर्शन और संसाधन उपयोग के बीच समझौता समायोजित करने के लिए आसानी से ट्यून करने योग्य हो सकता है।
मुझे लगता है कि इतना ही है। उनके इनपुट के लिए सभी को धन्यवाद।
-
amso
यदि आपको सैकड़ों धागे की आवश्यकता है, तो आप गलत तरीके से समस्या को देख रहे हैं। –
रोजर: मैं असहमत हूं, समस्या के आधार पर 100 धागे ठीक हो सकते हैं। धागे का उपयोग करना मतलब है कि कोड एक रैखिक अच्छा हो सकता है, जो कुछ कार्यों को अधिक आसान बनाता है। – MarkR
मैं असहमति से असहमत हूं। यदि आपने कभी लिनक्स पर 'ps amx' आउटपुट देखा है, तो आप कुछ प्रोग्राम (जैसे ...' console-kit-daemon') देखेंगे जो लगभग 63 डेमॉन थ्रेड रखेगा (जिनमें से 57 आम तौर पर बेकार हैं और कुछ भी नहीं करते हैं)। – user562374