हम के रूप मेंक्या django + mod_wsgi थ्रेडेड प्रोग्रामिंग अनुशासन की आवश्यकता है?
`WSGIDaemonProcess our-appname processes=6 threads=15'`
mod_wsgi के तहत हमारी पहली Django आवेदन बाहर चल रहे हैं और हम के बारे में चर्चा हो रही हो, क्या हमारे अजगर कोड और यह जरूरतों का उपयोग करता धागा सुरक्षित है या नहीं होने के लिए Redis और Postgres पुस्तकालयों।
मैं क्या mod_wsgi प्रलेखन पढ़ने से बता सकते हैं, भले ही अपाचे कार्यकर्ता कई अपाचे धागे के साथ अनुरोध पर काम कर रहा है, हमारी अजगर कोड सभी इरादों और मकसदों एकल पिरोया के लिए है। मुझे mod_wsgi दस्तावेज़ों पर कोई चेतावनी नहीं दिखाई दे रही है "सावधान रहें !! अब आपको वैश्विक डेटा और थ्रेड सुरक्षा के बारे में चिंता करने की ज़रूरत है!" लेकिन वहां कोई स्पष्ट नहीं है "थ्रेड के बारे में चिंता न करें कोई भी नहीं है"।
हम नहीं हमारे अजगर कोड में धागे के साथ स्पष्ट रूप से कुछ भी कर रहे हैं, वहाँ कुछ भी हम लिखा है में उन्हें का कोई जिक्र नहीं है।
लेकिन यहाँ कुछ लोगों की राय है कि हम threads=15
कि हम मल्टी-थ्रेडेड दुनिया में में अब कर रहे हैं के साथ चला रहे हैं के बाद से की है।
क्या कोई यह स्पष्ट कर सकता है कि वास्तव में यहां क्या चल रहा है? क्या हमारा पायथन कोड अब उसी डेटा के माध्यम से निष्पादन के कई धागे के अधीन है जहां यह पहले नहीं था, या नहीं?
क्षमा करें, लेकिन मुझे वाक्यांश में आपका अग्रणी बहुत भ्रमित लगता है। पाइथन दुभाषिया स्वयं धागा सुरक्षित है, अगर ऐसा नहीं होता तो यह पूरे स्थान पर दुर्घटनाग्रस्त हो जाएगा। संदर्भ गणनाओं के पाइथन दुभाषिया और प्रबंधन की आंतरिक स्थिति जीआईएल द्वारा मध्यस्थ होती है जैसा कि आप कहते हैं और यह सुनिश्चित करता है कि पाइथन दुभाषिया का उपयोग कई धागे के साथ सुरक्षित है। इसे समझाने का इतना बुरा तरीका। गीवेन्ट के साथ गनिकोर्न में कई धागे नहीं हैं। Gevent का उपयोग करते समय वे तकनीकी रूप से coroutines धागे नहीं हैं हालांकि यह उन्हें धागे की तरह दिखता है। –
अब आवेदन स्तर कोड थ्रेड सुरक्षित होने का मुद्दा एक अलग मुद्दा है, लेकिन इस बात को भ्रमित न करें कि पाइथन दुभाषिया थ्रेड सुरक्षित है या नहीं। –
पहली गिनती पर, मुझे लगता है कि यह सच है, हालांकि मुझे यकीन नहीं है कि यह पाइथन दुभाषिया का वर्णन करने के लिए कम सटीक है क्योंकि पाइथन ऑब्जेक्ट्स पर मेमोरी ऑपरेशंस के लिए थ्रेड सुरक्षित नहीं है, यह समझा जाता है कि यह थ्रेड सुरक्षित है क्योंकि जीआईएल धागे को ऊपर से करने से रोकता है। दूसरी गिनती पर, मैं सहमत हूं; gevent "हरी धागे" का उपयोग करता है जो तकनीकी रूप से धागे नहीं हैं - मुझे यह समझा जाना चाहिए था। –