Secara umum saya berasumsi bahwa aliran tidak disinkronkan, terserah pengguna untuk melakukan penguncian yang sesuai. Namun, apakah hal-hal seperti coutmendapat perlakuan khusus di perpustakaan standar?
Artinya, jika beberapa utas menulis, coutdapatkah mereka merusak coutobjek? Saya memahami bahwa meskipun disinkronkan, Anda masih akan mendapatkan keluaran interleaved acak, tetapi apakah interleaving itu dijamin. Artinya, apakah aman digunakan coutdari banyak utas?
Apakah vendor ini bergantung? Apa yang dilakukan gcc?
Penting : Harap berikan referensi untuk jawaban Anda jika Anda menjawab "ya" karena saya butuh semacam bukti untuk ini.
Perhatian saya juga bukan tentang panggilan sistem yang mendasarinya, itu baik-baik saja, tetapi aliran menambahkan lapisan buffer di atas.
printfbersinar saat output lengkap ditulis stdoutdalam satu pengambilan; ketika menggunakan std::coutsetiap tautan rantai ekspresi akan menjadi keluaran secara terpisah stdout; di antara mereka mungkin ada beberapa utas lain yang menulis stdoutkarena urutan hasil akhir menjadi kacau.