2012-02-16 6 views
9

मैं एक आरईएसटी एपीआई बनाने के लिए पाइथन फ्रेमवर्क का मूल्यांकन कर रहा हूं। मैं फ्लास्क समेत कई ढांचे से गुज़र चुका हूं और एक आरईएसटी वेब सेवा बनाने के लिए आवश्यक सभी सुविधाओं के साथ फ्लास्क को बहुत रोचक और उपयोग में आसान पाया है।फ्लास्क ढांचे में थ्रेड स्थानीय अर्थ क्या है?

मुझे जो चीज मिलती है वह फ्लास्क डॉक्स में है, यह उल्लेख किया गया है कि यह "थ्रेड लोकल" और स्केलेबिलिटी के साथ समस्याएं "का उपयोग करता है।

बोतल स्थानीय वस्तुओं थ्रेड का उपयोग करता है अनुरोध, सत्र और एक अतिरिक्त वस्तु आप (छ) पर अपने खुद के बातें रख सकते हैं के लिए (वास्तव में संदर्भ स्थानीय वस्तुओं, तो उन्हें भी greenlet संदर्भों का समर्थन )। वह क्यों है और एक बुरा विचार नहीं है? हां यह आमतौर पर थ्रेड स्थानीय लोगों का उपयोग करने के लिए इतना उज्ज्वल विचार नहीं है। वे उन सर्वरों के लिए परेशानी का कारण बनते हैं जो थ्रेड की अवधारणा पर आधारित नहीं हैं और बड़े अनुप्रयोगों को बनाए रखने के लिए कठिन बनाते हैं। हालांकि फ्लास्क को बड़े अनुप्रयोगों या एसिंक्रोनस सर्वर के लिए डिज़ाइन नहीं किया गया है। फ्लास्क पारंपरिक वेब एप्लिकेशन लिखना तेज़ और आसान बनाना चाहता है।

क्या कोई मुझे यह समझने में मदद कर सकता है, किस स्केलेबिलिटी के मुद्दों का उल्लेख किया जा रहा है और अन्य ढांचे कैसे इसे संभालते हैं ??

उत्तर

4

यह वास्तव में एक स्केलेबिलिटी समस्या नहीं है, बल्कि यह जटिल कोड-बेस को बनाए रखना अधिक कठिन बना सकता है। ऐसा इसलिए है क्योंकि फ़ंक्शन तर्कों के माध्यम से राज्य को गुजरने से बचने के लिए थ्रेड स्थानीय का उपयोग वैश्विक डेटा स्टोर के रूप में किया जाता है, जिससे यह चल रहा है कि क्या हो रहा है।

स्पीड-वार, थ्रेड लोकल विशेष रूप से धीमे नहीं होते हैं, लेकिन वे एसिंक्रोनस फ्रेमवर्क का उपयोग करना कठिन या असंभव बनाते हैं, जहां कई कार्य एक ही थ्रेड पर थोड़े समय के लिए चलते हैं।

+0

तो क्या आपका मतलब है कि थ्रेड स्थानीय लोगों के साथ दो अलग-अलग समस्याएं हैं: (1) प्रोग्रामर को वेरिएबल की स्थिति के बारे में सोचना पड़ता है जो प्रोग्राम को बहुत कठिन बनाता है; और (2) आम तौर पर अतुल्यकालिक प्रोग्रामिंग ढांचे का उपयोग थ्रेड स्थानीय लोगों की उपस्थिति में बिल्कुल काम नहीं करेगा? – max

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