সাধারণভাবে আমি ধরে নিয়েছি যে স্ট্রিমগুলি সিঙ্ক্রোনাইজ করা হয়নি, উপযুক্ত লকিং এটি ব্যবহারকারীর উপর নির্ভর করে। তবে, cout
স্ট্যান্ডার্ড লাইব্রেরিতে বিশেষ চিকিত্সা পাওয়ার মতো জিনিসগুলি কী?
অর্থাত্ যদি একাধিক থ্রেড লিখতে থাকে তবে cout
তারা cout
কী বস্তুটিকে দূষিত করতে পারে ? আমি বুঝতে পারি যে সিঙ্ক্রোনাইজ করা হলেও আপনি এখনও এলোমেলোভাবে আন্তঃবাহিত আউটপুট পেতে পারেন তবে এটি ইন্টারলিভিংয়ের গ্যারান্টিযুক্ত। অর্থাৎ, cout
একাধিক থ্রেড থেকে এটি নিরাপদ ?
এই বিক্রেতা কি নির্ভরশীল? জিসিসি কি করে?
গুরুত্বপূর্ণ : আপনি যদি "হ্যাঁ" বলে থাকেন তবে আপনার উত্তরটির জন্য দয়া করে কোনও প্রকারের রেফারেন্স সরবরাহ করুন কারণ এর কোনও প্রমানের আমার প্রমাণ প্রয়োজন।
আমার উদ্বেগ অন্তর্নিহিত সিস্টেম কলগুলি সম্পর্কে নয়, সেগুলি ভাল, তবে স্ট্রিমগুলি শীর্ষে বাফারিংয়ের একটি স্তর যুক্ত করে।
printf
জ্বলজ্বল করে stdout
; std::cout
এক্সপ্রেশন চেইনের প্রতিটি লিঙ্ক ব্যবহার করার সময় পৃথকভাবে আউটপুট হবে stdout
; তাদের মধ্যবর্তী সময়ে আরও কিছু থ্রেড রাইটিং থাকতে stdout
পারে যার কারণে চূড়ান্ত আউটপুট ক্রমটি গোলমাল হয়ে যায়।