सबसे पहले, मुझे लगता है कि std :: chrono के किसी भी फ़ंक्शन को कॉल करना थ्रेड-सुरक्षित होने की गारंटी है (कोई अपरिभाषित व्यवहार या दौड़ की स्थिति या अलग-अलग धागे से बुलाए जाने वाले खतरनाक कुछ भी नहीं)। क्या मैं सही हूँ?क्या मल्टीकोर संदर्भ के साथ भी कोई std :: chrono thread सुरक्षा गारंटी है?
अगला, उदाहरण के लिए on windows there is a well known problem related to multi-core processors जो some implementations of time related systems to allow forcing a specific core to get any time information को मजबूर करता है।
क्या मैं जानना चाहता हूँ है:
- का उपयोग कर std :: chrono मानक में, वहाँ किसी भी गारंटी नहीं है कि लगता है कि समस्या की तरह दिखाई नहीं चाहिए?
- या यह कार्यान्वयन
- परिभाषित किया गया है या क्या गारंटी की एक स्पष्ट अनुपस्थिति है जो दर्शाती है कि विंडोज़ पर आप हमेशा एक ही कोर से समय प्राप्त करेंगे?
KB लेख एक हार्डवेयर की समस्या का वर्णन करता है कि कर रहे हैं। इसका विशेष रूप से विंडोज़ के साथ कुछ लेना देना नहीं है। वही समस्या * किसी * ओएस पर होगी जो उस हार्डवेयर टाइमर का उपयोग करती है। और नहीं, सी ++ मानक में कुछ भी नहीं कह रहा है कि "यदि आप दुर्लभ दोषपूर्ण हार्डवेयर पर अपना कोड चलाते हैं तो इस वर्ग को बुरी तरह व्यवहार करने की अनुमति है"। – jalf
मेरी समझ यह है कि समस्या केवल विंडोज पर होती है? वैसे भी, आपका जवाब क्यों हटा रहा है? साथ ही, यह उन सभी बिंदुओं का उत्तर नहीं देता जो मैं पूछता हूं। – Klaim
देखें कि केबी आलेख क्या कहता है: "यह ऑपरेटिंग सिस्टम का व्यवहार डिज़ाइन द्वारा है। ऑपरेटिंग सिस्टम चिपसेट से अविश्वसनीय डेटा प्राप्त करते समय प्रदर्शन काउंटर समायोजन आवश्यक है।" यह किसी भी ओएस पर हो सकता है।माइक्रोसॉफ्ट बस इसे दस्तावेज करता है क्योंकि लोगों ने अक्सर एक KB आलेख को वारंट करने के लिए पर्याप्त रूप से सामना किया है (आंशिक रूप से क्योंकि विंडोज व्यापक रूप से उपयोग किया जाता है, और आंशिक रूप से क्योंकि इसका व्यापक रूप से गेम के लिए उपयोग किया जाता है, उच्च-रिज़ॉल्यूशन टाइमर अधिक बार उपयोग किए जाते थे) – jalf