2009-02-03 10 views
6

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

उत्तर

28

आपकी जानकारी पुरानी है। यह धागा 2.2.2

के रूप में, मन Ruby MRI 1.8.x रखें रूबी के सबसे व्यापक रूप से इस्तेमाल कार्यान्वयन Green Threads का उपयोग करता है, तो 1.8.x के साथ यदि आप 100 धागे वे एक ही सीपीयू पर सभी रन बनाने के लिए सुरक्षित है। इसलिए एमआरआई का उपयोग करते हुए रेल वेबसाइटों की मेजबानी करते समय, शायद आप रूबी के कई उदाहरण चलाना चाहते हैं क्योंकि आपके पास सीपीयूएस है। passenger जैसी सामग्री आपके लिए इसका ख्याल रखती है।

यह JRuby के लिए एक बड़ी समस्या थी, क्योंकि जेआरबीई में मूल धागे हैं, और जुगलिंग प्रक्रियाएं अनिवार्य लगती हैं। वैसे भी, यह अब हल हो गया है।

एक तरफ, आयरन रूबी, नेट रूबी दुभाषिया देशी धागे चलाता है।

नोट: रूबी 1.9.1 मूल धागे का उपयोग करता है, लेकिन अभी भी एक वैश्विक दुभाषिया लॉक है।

4

असल में यह कह रहा है कि आपके पास अलग-अलग धागे के तहत एक ही प्रक्रिया में चलने वाली रेल की कई प्रतियां नहीं हो सकती हैं क्योंकि कुछ संसाधनों के लिए धागे के बीच रिसाव करना संभव है, अनजाने में अजीब व्यवहार जैसे वस्तुएं बदलती दिखती हैं यादृच्छिक समय पर गायब हो रहा है।

इसके अतिरिक्त, यह भी हो सकता है कि वर्गों को उनके द्वारा बनाए गए किसी भी सिंक्रनाइज़ेशन के साथ डिज़ाइन नहीं किया गया हो, जिससे रेल के हिस्सों को धागे में डालना मुश्किल हो और अन्य हिस्सों को धागे के बीच साझा किया जा सके।

0

यह उल्लेखनीय है कि रूबी एमआरआई 1.8.x ग्रीन थ्रेड का उपयोग करता है, लेकिन रुबी एमआरआई 2 में देशी धागे होंगे।

+0

असल में रूबी 1.9 में पहले से ही देशी धागे हैं .. –

+0

जो भी आप कहते हैं वह सत्य है, लेकिन मैंने भेद खींचा क्योंकि 1.9 2.0 तक का प्रयोगात्मक संस्करण है। (अजीब संख्या वाले लिनक्स कर्नेल जैसे किंडा प्रयोगात्मक हैं और इन्हें उत्पादन में उपयोग नहीं किया जाना चाहिए।) –

+0

@ बेंजामिन, 1.9 रूबी वेबसाइट पर स्थिर घोषित किया गया है, यह 1.8 से अधिक आर्किटेक्चर का एक बड़ा परिवर्तन है (क्योंकि इसके आधार पर यारव) मुझे यकीन नहीं है कि 2.0 में सुविधाओं के लिए स्कोपिंग भी किया जाता है। –

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