Форум программистов, компьютерный форум CyberForum.ru

printf и мультипоточность - C++

Восстановить пароль Регистрация
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
20.11.2013, 19:40     printf и мультипоточность #1
Как printf работает при нескольких потоках?

То, что я знаю: printf пишет в буфер и при первой возможности выводит забуференное в консоль. Можно самостоятельной (принудительно) вывести то, что было забуферено при помощи fflush().
Вот чего я не могу понять, каждый поток имет свой буфер для stdout или они разделяют общий? Если разделяют, то неужели у него есть синхронизация примитивами или они действуют без неё каким-то магическим образом и что будет с fflush, вызванным сразу в нескольких потоках?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 19:40     printf и мультипоточность
Посмотрите здесь:

printf C++
C++ printf();
C++ округление printf("%.4f", (float) ans ); и printf("%.4lf", ans );
C++ Printf
Чем ::printf предпочтительнее printf? C++
printF C++
Printf() - Cout C++
Мультипоточность C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,295
Завершенные тесты: 1
21.11.2013, 10:51     printf и мультипоточность #2
Чтобы не задавать такие вопросы придумали синхронизацию потоков, с помощью мьютексов, событий, семафоров, критических секций. stdout в данном случае выступает разделяемым ресурсом. Если из разных потоков одновременно вызывать printf, то информация перемешивается и на экран выводится каша - это проверено.
Yandex
Объявления
21.11.2013, 10:51     printf и мультипоточность
Ответ Создать тему
Опции темы

Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru