2011-03-11 17 views
7

मैं रूबी में बहु-थ्रेडेड प्रोग्रामिंग पर कुछ ब्लॉग पढ़ रहा हूं। मैंने जो देखा वह यह है कि लेखक थ्रेड-सुरक्षा शब्द का उपयोग करता है। इसका क्या मतलब है? थ्रेड-सुरक्षा कोड लिखना क्यों महत्वपूर्ण है?थ्रेड सुरक्षा का क्या अर्थ है?

+3

+1 जो आप पढ़ रहे हैं उसके बारे में सोचने के लिए +1, हर कोई नहीं करता :-) – Chris

उत्तर

7

यदि आपके पास संसाधन है (उदाहरण के लिए किताबों की वैश्विक सूची कहें) और आपके पास दो धागे चल रहे हैं जो इस सूची को संशोधित कर सकते हैं। ऐसी कई स्थितियां हैं जहां सूची का डेटा असंगत होगा।

  • (थ्रेड बी एक ही पुस्तक को हटा देता है, जबकि डाटा थ्रेड एक द्वारा किया जाता है)
  • (थ्रेड अब करने के लिए कुछ जानकारी जोड़ने के लिए चाहता है (धागा एक एक पुस्तक ands को प्रदर्शित करता है अपने डेटा पढ़ता है) बुक)

तो तुम पुस्तकों की सूची में लिखने कर सकते हैं धागा सुरक्षित ताकि जब भी केवल एक एकल थ्रेड पर अपने कोड बनाने के लिए किया है।

डेडलॉकिंग स्पायर्सपी द्वारा वर्णित होता है जब थ्रेड ए लिखने की सूची को अवरुद्ध करता है और सूची में डेटा जोड़ने के लिए थ्रेड बी के लिए प्रतीक्षा करता है। क्योंकि दोनों धागे एक दूसरे के लिए कुछ ऐसा करने की प्रतीक्षा करेंगे जो वे नहीं कर सकते हैं। यह तब होता है जब थ्रेड-सुरक्षा तंत्र ठीक से कार्यान्वित नहीं किया जाता है।

+1

बहुत अच्छी तरह से समझाया गया। +1 मुझे यह भी जोड़ने दें कि सबसे तैयार किए गए पैकेज (जैसे कि पायथन के लिए कतार) बॉक्स के बाहर थ्रेड सुरक्षित तंत्र पर आधारित हैं। – Spyros

+0

@SpyroP अच्छा बिंदु! आपको कई प्रोग्रामिंग भाषाओं में बहुत से तैयार थ्रेड सुरक्षा डेटा संरचनाएं मिलेंगी। मुझे यकीन है कि रूबी की कुछ सूची और मानचित्र भी इसके बारे में परवाह करते हैं। – Chris

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