Tôi biết rằng không có khái niệm về chủ đề trong hiện tại C++
, nhưng this article is saying:Các luồng đầu ra tiêu chuẩn trong C++ thread-safe (cout, cerr, clog)?
Một typesafe, ThreadSafe, di cơ chế khai thác gỗ
.....
Các chức năng
fprintf()
là threadsafe, vì vậy ngay cả khi nhật ký này được sử dụng từ chủ đề khác nhau, các dòng đầu ra sẽ không bị tranh giành.
Điều gì về cout
, cerr
và clog
?
Tôi nghĩ câu hỏi này có thể áp dụng cho tất cả các loại luồng trong C++ cũng như fstream
và stringstream
.
[Lưu ý: câu trả lời giờ là "có", trong C++ 11] (http://stackoverflow.com/a/6374525/87234). – GManNickG
@GManNickG: Tôi sử dụng Visual Studio 2013 C++ và cout vẫn không phải là chủ đề an toàn. đầu ra trên màn hình chủ yếu là bị hỏng/trộn lẫn. –
@MehmetFide: Chủ đề an toàn khác với đồng bộ hóa (chuỗi hỗn hợp/xen kẽ); C++ 11 guarentees tiêu chuẩn rằng việc thực hiện không dẫn đến các cuộc đua dữ liệu khi sử dụng các đối tượng này từ các luồng khác nhau, trong khi tối đa bạn đảm bảo rằng nhiều toán tử 'operator <<' được đồng bộ hóa. – legends2k