Nói chung, tôi giả định rằng các luồng không được đồng bộ hóa, người dùng có thể thực hiện khóa phù hợp. Tuy nhiên, những thứ như cout
có được đối xử đặc biệt trong thư viện tiêu chuẩn không?
Đó là, nếu nhiều luồng đang ghi cout
chúng có thể làm hỏng cout
đối tượng không? Tôi hiểu rằng ngay cả khi được đồng bộ hóa, bạn vẫn nhận được đầu ra xen kẽ ngẫu nhiên, nhưng việc xen kẽ đó có được đảm bảo không. Đó là, nó có an toàn để sử dụng cout
từ nhiều chủ đề không?
Nhà cung cấp này có phụ thuộc không? Gcc làm gì?
Quan trọng : Vui lòng cung cấp một số loại tham chiếu cho câu trả lời của bạn nếu bạn nói "có" vì tôi cần một số loại bằng chứng về điều này.
Mối quan tâm của tôi cũng không phải là về các lệnh gọi hệ thống cơ bản, những lệnh đó ổn, mà là các luồng thêm một lớp đệm ở trên cùng.
printf
tỏa sáng khi đầu ra hoàn chỉnh được ghi stdout
vào một lần chụp; khi sử dụng std::cout
mỗi liên kết của chuỗi biểu thức sẽ được xuất ra riêng rẽ stdout
; ở giữa chúng có thể có một số ghi luồng khác stdout
do đó thứ tự của đầu ra cuối cùng bị rối loạn.