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