विकिपीडिया से:
थ्रेड सुरक्षा एक कंप्यूटर प्रोग्रामिंग अवधारणा है जो बहु-थ्रेडेड प्रोग्राम्स के संदर्भ में लागू होती है। कोड का एक टुकड़ा धागा-सुरक्षित है यदि यह कई धागे द्वारा एक साथ निष्पादन के दौरान सही ढंग से कार्य करता है। विशेष रूप से, इसे एक ही साझा डेटा तक पहुंचने के लिए एकाधिक धागे की आवश्यकता को पूरा करना होगा, और डेटा के एक साझा टुकड़े की आवश्यकता किसी भी समय किसी एक थ्रेड द्वारा एक्सेस की जानी चाहिए।
...
थ्रेड सुरक्षा प्राप्त करने के कुछ तरीके हैं:
Re-entrancy
कोड को इस तरह से लिखना कि इसे एक कार्य द्वारा आंशिक रूप से निष्पादित किया जा सकता है, किसी अन्य कार्य द्वारा पुन: प्रस्तुत किया जा सकता है, और उसके बाद मूल कार्य से फिर से शुरू किया जा सकता है। इसके लिए स्थिर या वैश्विक चर के बजाय, प्रत्येक कार्य के लिए स्थानीय रूप से चर के रूप में राज्य की जानकारी की बचत की आवश्यकता होती है।
Mutual exclusion
साझा डेटा तक पहुंच तंत्र का उपयोग करके क्रमबद्ध है जो सुनिश्चित करता है कि केवल एक थ्रेड किसी भी समय साझा डेटा को पढ़ या लिखता है। कोड की एक टुकड़ा डेटा-समस्याओं में कई साझा किए गए टुकड़ों तक पहुंचने पर बड़ी देखभाल की आवश्यकता होती है जिसमें कई ऑपरेटिंग सिस्टम पाठ्यपुस्तकों में रेस की स्थिति, डेडलॉक्स, लाइफॉक्स, भुखमरी और कई अन्य बीमारियां शामिल हैं।
Thread-local storage
वेरिएबल्स को स्थानीयकृत किया जाता है ताकि प्रत्येक थ्रेड की अपनी निजी प्रति हो। ये चर subroutine और अन्य कोड सीमाओं में अपने मान बनाए रखते हैं, और थ्रेड-सुरक्षित हैं क्योंकि वे प्रत्येक थ्रेड के लिए स्थानीय हैं, भले ही उन्हें एक्सेस करने वाला कोड पुनर्वित्त हो।
Atomic operations
Shared data are accessed by using atomic operations which cannot be interrupted by other threads. This usually requires using special machine language instructions, which might be available in a runtime library. Since the operations are atomic, the shared data are always kept in a valid state, no matter what other threads access it. Atomic operations form the basis of many thread locking mechanisms.
और पढ़ें:
http://en.wikipedia.org/wiki/Thread_safety