आईबीएम.com पर an article के अनुसार, "एक दौड़ की स्थिति एक ऐसी स्थिति है जिसमें दो या दो से अधिक धागे या प्रक्रियाएं कुछ साझा डेटा पढ़ रही हैं या लिख रही हैं, और अंतिम परिणाम धागे निर्धारित होने के समय पर निर्भर करता है। रेस की स्थिति अप्रत्याशित परिणाम और सूक्ष्म कार्यक्रम कीड़े का कारण बन सकता है। " । हालांकि लेख जावा से संबंधित है, लेकिन मुझे सामान्य रूप से एक ही परिभाषा सिखाई गई है।बहुप्रचारित पढ़ने में दौड़ की स्थिति के बारे में क्या?
जहां तक मुझे पता है, रैम से पढ़ने का सरल संचालन विशिष्ट इनपुट लाइनों (पता, पढ़ा आदि) के राज्यों को स्थापित करने और आउटपुट लाइनों के राज्यों को पढ़ने से बना है। यह एक ऐसा ऑपरेशन है जिसे स्पष्ट रूप से दो उपकरणों द्वारा निष्पादित नहीं किया जा सकता है और इसे क्रमबद्ध किया जाना चाहिए।
अब मान लीजिए कि हमारे पास एक स्थिति है जब कुछ धागे स्मृति में किसी ऑब्जेक्ट तक पहुंचते हैं। सिद्धांत रूप में, दौड़ की स्थिति को रोकने के लिए इस पहुंच को क्रमबद्ध किया जाना चाहिए। लेकिन उदा। पाठकों/लेखकों एल्गोरिदम मानते हैं कि पाठकों की मनमानी संख्या एक ही समय में साझा स्मृति का उपयोग कर सकती है।
तो, सवाल यह है: क्या मल्टीथ्रेडिंग (WinAPI उदा। में) का उपयोग करते समय किसी को पढ़ने के लिए एक विशेष लॉक लागू करना पड़ता है? यदि नहीं, क्यों? यह नियंत्रण कहां लागू किया गया है - ओएस, हार्डवेयर?
सादर, कुबा
हा, बतायाया;] –