LINUX.ORG.RU
Ответ на: комментарий от kaldeon

Если вывод синхронный, то идет ожидание события о выполнении вывода. При асинхронном режиме такого ожидания нет.

q137
() автор топика
Ответ на: комментарий от q137

Обычно говорят, что printf является «thread-safe.» Я всё равно не понимаю как должен выглядеть асинхронный printf. Он же не запускает новый поток.

Подробнее здесь посмотри: https://stackoverflow.com/a/468105

kaldeon
()

Вывод буферизованный.

При чем тут асинхронный или нет? Ты задай свой реальный вопрос, а не гадай на лоре..

aol ★★★★★
()
Ответ на: комментарий от q137

Ожидания нет, но и по-настоящему асинхронным его назвать нельзя, потому что переполнение буфера может заблокировать любой printf, если терминал не справляется с потоком данных.

neumond
()

Предположу, речь о ситуации в которой несколько потоков выводят текст одновременно. Будет ли выводимый тредами текст смешиваться? Ответ: да, будет.

В этом смысле хорошо сделано в языке D: там функция writeln, выводящая строку на экран, гарантирует что строка будет выведена целиком в задуманном виде и ничто из другого треда не вклинится посерединке

ahdenchik
()
Последнее исправление: ahdenchik (всего исправлений: 1)
Ответ на: комментарий от ahdenchik

Когда направил вывод программы в файл, используя > ,программа стала работать хуже в том смысле, что результат был получен за значительно большее время.

q137
() автор топика
Ответ на: комментарий от q137

Программа стала работать лучше: появилась гарантия что все данные сохранены в файл

ahdenchik
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.