सामान्य तौर पर मैं मानता हूं कि धाराएँ सिंक्रनाइज़ नहीं हैं, यह उचित लॉकिंग करने के लिए उपयोगकर्ता पर निर्भर है। हालांकि, coutमानक पुस्तकालय में विशेष उपचार जैसी चीजें मिलती हैं?
यही है, अगर कई सूत्र लिख रहे हैं तो coutक्या वे coutवस्तु को भ्रष्ट कर सकते हैं ? मुझे लगता है कि भले ही सिंक्रनाइज़ आपको अभी भी बेतरतीब ढंग से interleaved उत्पादन मिलेगा, लेकिन यह है कि interleaving की गारंटी है। यही है, यह coutकई धागे से उपयोग करने के लिए सुरक्षित है ?
क्या यह विक्रेता निर्भर है? Gcc क्या करता है?
महत्वपूर्ण : कृपया अपने उत्तर के लिए किसी प्रकार का संदर्भ प्रदान करें यदि आप "हां" कहते हैं क्योंकि मुझे इसके किसी प्रकार के प्रमाण की आवश्यकता है।
मेरी चिंता अंतर्निहित सिस्टम कॉल्स के बारे में भी नहीं है, वे ठीक हैं, लेकिन धाराएं शीर्ष पर बफरिंग की एक परत जोड़ देती हैं।
printfचमकता है के रूप में पूरा उत्पादन के लिए लिखा है stdoutएक शॉट में; जब std::coutअभिव्यक्ति श्रृंखला के प्रत्येक लिंक का उपयोग करने के लिए अलग से उत्पादन किया जाएगा stdout; उनके बीच में कुछ अन्य थ्रेड राइटिंग stdoutहो सकती है जिसके कारण अंतिम आउटपुट का क्रम गड़बड़ हो जाता है।