2011-11-30 7 views
6

संभव डुप्लिकेट:
What is thread safe or non thread safe in PHPPHP संदर्भ में थ्रेड सुरक्षित अर्थ क्या है?

इसका क्या मतलब है जब कुछ है या सुरक्षित थ्रेड नहीं है?

उदाहरण के लिए, setlocale() PHP में सुरक्षित थ्रेड नहीं है:

स्थानिक जानकारियां धागा प्रति नहीं, प्रक्रिया के अनुसार बनाए रखा है। यदि आप विंडोज़ पर आईआईएस या अपाचे जैसे मल्टीथ्रेडेड सर्वर एपीआई पर PHP चला रहे हैं, तो आपको पर एक स्क्रिप्ट चल रही है, जबकि स्क्रिप्ट चल रहा है, हालांकि स्क्रिप्ट को कभी भी setlocale() कहा जाता है। यह अलग-अलग एक ही समय में एक ही प्रक्रिया के धागे में चल रही अन्य स्क्रिप्ट के कारण होता है, प्रक्रिया-विस्तृत लोकेल को setlocale() का उपयोग करके बदलता है।

http://php.net/manual/en/function.setlocale.php

क्या यह व्यावहारिक रूप से मतलब है? क्या यह अच्छी बात है कि कुछ धागा सुरक्षित है या नहीं?

आपकी समस्याओं के लिए आपको किस स्थिति में थ्रेड-सुरक्षित या गैर-थ्रेड-सुरक्षित समाधान की आवश्यकता है?

+0

क्या आपने उस हिस्से को पढ़ा था जहां यह समझाता है कि यह केवल कुछ वेबसर्वर सेटअप से संबंधित है? यह ऐसा कुछ नहीं है जिसे आप चुन सकते हैं या उपयोग कर सकते हैं। और 'setlocale' संभावित साइड इफेक्ट्स का एक अच्छा उदाहरण है। (सिवाय इसके कि यह वास्तव में हाल के विंडोज संस्करणों पर प्रति-थ्रेड काम करता है।) – mario

उत्तर

4

थ्रेड सुरक्षित एक अच्छी बात है, इसका मतलब है, जबकि वहाँ कई समवर्ती धागे हो सकता है, वे एक सुरक्षित तरीका दौड़ की स्थिति, संगामिति मुद्दों के लिए नहीं होगा कि एक दूसरे से बात कर रहे आदि

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

Source

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