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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

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

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

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

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

Мультипоточность - C++
Всем привет! Подскажите, пожалуйста! какой функцией лучше всего организовать много потоков в windows forms? И чтобы приоритеты...

Ссылки на объект и мультипоточность - C++
Такая проблема: есть два потока и глобально объявленная ссылка на объект, когда я инициализирую её в одном потоке, во втором она остаётся...

printF - C++
обьясните что делает этот printf("\n%s%s%s", First, " NOT Equal " + (!strcmp(First, Second) << 2), Second); в книге под задаей...

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

Printf - C++
Добрый день! У меня возник вопрос: st = 100.0*mas/m ; printf("%.2f\n",st); нужно чтобы после "st" выводил знак процента. ...

Параметры printf - C++
Здравствуйте дорогие форумчане ;) У меня есть вопрос по следующему куску кода. Решив по практиковаться с консольным приложением у меня...

printf + потоки - C++
Добрый день. Обнаружилась странность, что при вызове из разных потоков printf("hello world") - не выводит в консоль, а printf("hello world...

Printf() - Cout - C++
Простой вопрос. Как заменить printf ("%09d", a); на cout?

Printf не работает - C++
Здравствуйте. В такой вот, пародии на программку последний printf ничего не выводит. Только начал изучать C++. Подкажите в чём может быть...

Вопрос по printf - C++
Привет. Начал изучать C++. У меня небольшая проблема: Работаю в IDE eclipse, компилятор MinGW. При вводе кода: #include...


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

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

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