Погружение В Python является книгой Python для опытных программистов.
В статье говорится о стандарте POSIX для API fprintf
. Это ничего не говорит о потоках C ++. И это совершенно правильно, поскольку для этого потока нет таких гарантий.
Обратите внимание, что хотя класс ведения журнала в этой статье использует синтаксис потока C ++, он делает это через объект std :: ostringstream
, который создается и уничтожается для каждого события регистрации и поэтому не используется потоками. Он использует fprintf
для фактической записи контента в консоль.
Библиотека Microsoft C утверждает, что она совместима с POSIX, поэтому код в статье, вероятно, довольно широко переносится (как и многие другие популярные операционные системы совместимы с POSIX). Но это не означает, что стандартные потоки C ++ являются потокобезопасными.
Это будет специфическая деталь реализации. Вы можете спросить, есть ли у компилятора X с Run Time Library Y потокобезопасные стандартные потоки, но вы не можете спросить, есть ли у всех реализаций, потому что реализациям разрешено различаться в отношении безопасности потоков. Это отчасти означает, что C ++ не имеет встроенной концепции потоков. Все зависит от реализации.
Поскольку текущий стандарт C ++ даже не признает, что существуют вещи, называемые «потоками», он определенно не дает никаких гарантий в отношении безопасности потоков.
Все это определяется реализацией.