Apache mod_wsgi पर तैनात एक Django ऐप को विकसित करते समय मैंने पाया कि मल्टीथ्रेडिंग (पायथन थ्रेड, mod_wsgi प्रक्रिया = 1 थ्रेड = 8) के मामले में पाइथन सभी उपलब्ध प्रोसेसर का उपयोग नहीं करेगा। मल्टीप्रोसेसिंग दृष्टिकोण के साथ (mod_wsgi प्रक्रिया = 8 धागे = 1) सब ठीक है और मैं अपनी मशीन को पूरी तरह से लोड कर सकता हूं।क्या पाइथन थ्रेड मोड में सभी प्रोसेसर का उपयोग करेगा?
तो प्रश्न: क्या यह पायथन व्यवहार सामान्य है? मुझे शक है क्योंकि कुछ थ्रेड के साथ 1 प्रक्रिया का उपयोग डिफ़ॉल्ट mod_wsgi दृष्टिकोण है।
प्रणाली है: FreeBSD 7.2 AMD64 पर
2xIntel जिऑन 5xxx श्रृंखला (8 कोर (16 हाइपरथ्रेडिंग के साथ)) और 2.6.4
धन्यवाद सभी प्रश्नों के उत्तर के लिए अजगर। हम सभी ने पाया कि जीआईएल की वजह से यह व्यवहार सामान्य है। यहां एक अच्छा स्पष्टीकरण दिया गया है: http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ या स्टैक ओवरफ्लो जीआईएल चर्चा: ।
इस प्रश्न के तीन अपवाद क्यों हैं? एक साधारण Google खोज पर्याप्त होगी। – aaronasterling
@Aaronasterling: हम सरल प्रश्नों और सरल उत्तरों के साथ एक बड़ा ज्ञान डेटाबेस stackoverflow बनाना पसंद करते हैं। निश्चित रूप से यह जानकारी उपलब्ध है यदि आप STFG – HardQuestions