Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
#1

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

20.11.2013, 19:40. Просмотров 319. Ответов 1
Метки нет (Все метки)

Как printf работает при нескольких потоках?

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

Мультипоточность
Всем привет! Подскажите, пожалуйста! какой функцией лучше всего...

Чем ::printf предпочтительнее printf?
Смотрю на код одного толкового программиста и, как новичек в С++, удивляюсь:...

Ссылки на объект и мультипоточность
Такая проблема: есть два потока и глобально объявленная ссылка на объект, когда...

округление printf("%.4f", (float) ans ); и printf("%.4lf", ans );
printf("%.4f", (float) ans ); printf("%.4lf", ans ); вроде по моему...

printF
обьясните что делает этот printf("\n%s%s%s", First, " NOT Equal " +...

1
alexcoder
1558 / 703 / 146
Регистрация: 03.06.2009
Сообщений: 4,039
Завершенные тесты: 1
21.11.2013, 10:51 #2
Чтобы не задавать такие вопросы придумали синхронизацию потоков, с помощью мьютексов, событий, семафоров, критических секций. stdout в данном случае выступает разделяемым ресурсом. Если из разных потоков одновременно вызывать printf, то информация перемешивается и на экран выводится каша - это проверено.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 10:51

printf();
printf("И : %s ",argv); в цикле вывожу параметры которые задал в консоле, но...

Printf
Добрый день! У меня возник вопрос: st = 100.0*mas/m ; ...

printf/scanf
Возник вопрос. int main(void) { printf("Hello world"); } Что...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru