2009-11-21 24 views
6

यदि दो धागे एक ही समय में एक ही पते पर लिखने का प्रयास करते हैं, तो समवर्ती लेखन के बाद मूल्य क्या है जो धागे लिखने की कोशिश करते हैं? या बिट्स का संयोजन प्राप्त करना संभव है?समवर्ती उसी स्मृति पते पर लिखते हैं

साथ ही, क्या बिट्स एक अस्थिर स्थिति में रहते हुए स्मृति पते को पढ़ने के लिए संभव है?

मुझे लगता है कि प्रश्न क्या उबलता है यदि एक स्मृति स्मृति को पढ़ने या लिखना हार्डवेयर स्तर पर परमाणु है।

+0

सिर्फ स्पष्टीकरण के लिए, यह एक पूर्णांक – Mark

उत्तर

0

एक बात, सीपीयू रजिस्टर के बराबर आकार अस्थिर अवस्था में बिट्स कभी नहीं हो सकता का एक डेटाप्रकार के लिए, यह

5

मुझे लगता है कि यह सब आपकी विशेष प्रोग्रामिंग भाषा या सिस्टम के लिए "मेमोरी मॉडल" पर निर्भर करता है।

+0

के लिए है, इसमें शामिल विभिन्न भागों (भाषा, हार्डवेयर, ओएस, थ्रेड मॉडल इत्यादि) के परिष्कार के आधार पर बहुत कुछ परिदृश्य संभव है। किसी भी हार्डवेयर प्लेटफॉर्म पर – workmad3

+0

सी ++ – Mark

2

ये प्रश्न सिस्टम या/और प्रोग्रामिंग भाषा मेमोरी मॉडल के मूलभूत सिद्धांत हैं। इसलिए, अपना स्वयं का ओएस और प्रोग्रामिंग भाषा चुनें, चश्मा पढ़ें और आप देखेंगे।

0

एक बहु-प्रोसेसर कंप्यूटर पर, एक "मूल्य" नहीं पढ़ा जा सकता है। दो धागे, और तीसरे, असंगत मूल्य देख सकते हैं। यह सुनिश्चित करने के लिए कि प्रत्येक थ्रेड इस पते पर एक ही मान देखता है, आपको स्मृति बाधा की आवश्यकता होगी।

इसके अलावा, आमतौर पर लेखन परमाणु होते हैं, इसलिए यह या तो एक या अन्य मूल्यों को लिखा जाएगा (या वहां पहले स्थान पर थे) जो पढ़े जाते हैं। आप अल्फा प्रोसेसर के बारे में बात नहीं कर रहे हैं, है ना? यकीन के लिए

1

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

यदि आप पढ़ना चाहते हैं, तो बोहेम का पेपर "Threads cannot be implemented as a library" इसमें और समवर्तीता के अन्य quirks शामिल हैं।

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