मैं सी ++ 11 mutexes ताला देख void lock() volatile
नहीं है। संकलक कैसे जानता है कि कौन से फ़ंक्शन मेमोरी बाधाएं हैं और कौन नहीं हैं? क्या सभी कार्य बाधाएं हैं भले ही वे अस्थिर न हों? कुछ कम ज्ञात मेमोरी बाधाएं और मेमोरी बाधाओं को क्या पता होना चाहिए?सी ++ में मेमोरी बाधाओं के उदाहरण क्या हैं?
उत्तर
क्रम पुस्तकालय एक तरह से एक म्युटेक्स लागू करने के लिए इतना है कि संकलक जानता है! भाषा मानक यह कैसे करने के बारे में कुछ नहीं कहता है।
इसी तरह, यह कुछ ऑपरेटिंग सिस्टम सेवा है कि एक स्मृति बाधा के रूप में काम करता है के लिए एक कॉल शामिल है। या कंपाइलर में एक्सटेंशन हो सकता है, जैसे void _ReadWriteBarrier();
आपके std::mutex
का वास्तविक कार्यान्वयन ऐसा होगा कि संकलक अवैध रीडरिंग नहीं करता है, परिवर्तनीय भार को बढ़ाता नहीं है, और यह सुनिश्चित करेगा कि लॉक चर का उपयोग किया जा सके परमाणु रूप से और सीपीयू लॉक अधिग्रहण और रिलीज के लिए आवश्यक स्मृति बाधाओं को निष्पादित करता है।
कितना काम करने की जरूरत के विवरण इस मंच के लिए मंच से भिन्न सुनिश्चित करने के लिए किया जाना है, लेकिन अपने पुस्तकालय कार्यान्वयन सही काम करेंगे।
मेरा प्रश्न के कैसे संकलक पता है म्युटेक्स में क्या और क्यों यह पहले और ताला के बाद चर को पुन: व्यवस्थित नहीं करता अधिक है? कार्यों को निश्चित रूप से अस्थिर के रूप में चिह्नित नहीं किया जाता है। इसके अलावा मैंने एक बार एमएसवीसी शीर्षकों को देखा और ऐसा लगता है कि यह एक टेम्पलेट नहीं है और lib के माध्यम से जुड़ा हुआ है। तो ... मुझे विश्वास नहीं है कि संकलक के विश्लेषण के लिए यह रेखांकित किया गया है और देखें कि क्या इस * फ़ंक्शन में वर्र्स की आवश्यकता नहीं है ... –
@ acidzombie24: संभवतः, बाहरी फ़ंक्शन कॉल को कभी भी पुन: व्यवस्थित नहीं किया जाएगा कंपाइलर, जैसा कि आप देखते हैं, यह कभी भी सही साबित नहीं हो सकता है। –
- 1. सी ++ में आपने मेटाप्रोग्रामिंग के सबसे अच्छे उदाहरण क्या हैं?
- 2. क्या ये उदाहरण सी # बंद हैं?
- 3. सी ++ एकाधिक विरासत के असली दुनिया के उदाहरण क्या हैं?
- 4. मार्कलॉग में मेमोरी तत्वों में क्या हैं?
- 5. "मूल" के साथ संकलन की बाधाओं/सीमाएं क्या हैं?
- 6. क्या माता-पिता के उदाहरण के उदाहरण वापस आते हैं?
- 7. जावा मेमोरी मॉडल और सी ++ 11 मेमोरी मॉडल के बीच समानताएं क्या हैं?
- 8. सी ++ में अनुक्रमिक nonlinear अनुकूलन पुस्तकालय बाधाओं के साथ
- 9. सी # मेमोरी
- 10. मैं मेमोरी बाधाओं और अस्थिरता को कैसे समझूं
- 11. बाधाओं
- 12. समांतर गणना के कैननिकल उदाहरण क्या हैं?
- 13. मेमोरी ओलाप में महत्वपूर्ण मेमोरी के साथ पारंपरिक सिस्टम पर क्या फायदे हैं?
- 14. क्या सी # में स्थिरांक हैं?
- 15. क्या बाधाओं पर डेटाबेस और कार्यात्मक प्रोग्रामिंग हैं?
- 16. बाधाओं के साथ अनुकूलन
- 17. Enums कितनी मेमोरी लेते हैं?
- 18. सी # में जेनेरिक क्या हैं?
- 19. स्कैला में प्रतीक अक्षर के लिए कुछ उदाहरण उपयोग उदाहरण क्या हैं?
- 20. सी ++ उदाहरण के बराबर
- 21. सी - मेमोरी
- 22. Nnnit 2.5 में बाधाओं को बाधाओं के रूप में उपयोग करना?
- 23. सी ++ मेमोरी प्रबंधन
- 24. एकल बनाम मल्टीपल मेमोरी कैश उदाहरण
- 25. सी ++ मेमोरी
- 26. scipy.optimize.leastsq बाध्य बाधाओं के साथ
- 27. कुछ उदाहरण क्या हैं अज्ञात प्रकार उपयोगी हैं?
- 28. सी ++ उदाहरण?
- 29. क्या हम जेवीएम मेमोरी में ऑब्जेक्ट्स देख सकते हैं?
- 30. एसक्यूएल सर्वर: विदेशी कुंजी बाधाओं के साथ पंक्तियों को हटाने: लेनदेन बाधाओं को ओवरराइड कर सकते हैं?
यह वास्तव में मंच पर निर्भर करता है। केवल एक कोर के साथ एम्बेडेड सिस्टम के लिए सी ++ कंपाइलर किसी भी प्रकार की मेमोरी बाधा के बिना म्यूटेक्स को कार्यान्वित करने में सक्षम हो सकते हैं, क्योंकि स्मृति हमेशा सुसंगत होती है। –
@BenVoigt, उन्हें अभी भी कंपाइलर निर्देश रीडरिंग को अवरुद्ध करने की आवश्यकता है। –