segeich
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Arion Цитата: Я не очень понял о какой синхронизации при free идет речь? | Я имел ввиду то, что синхронизация (вход-выход в критическую секцию) делается автоматом внутри malloc, free, и им подобным функциям, поскольку они работают с разделяемым ресурсом, heap'ом. Ясен пень, что тебе не надо самому обёртывать вызов free синхронизацией. Но это вовсе не значит, что синхронизации нет. Цитата: попытка освободить одновременно два буфера вообще возникнуть не может | А free по барабану из скольких потоков её вызывают и может ли возникнуть проблема или нет. Синхронизируется делается всегда. Хочешь иного - пиши свой собственный распределитель памяти, но минимум одна синхронизация всё равно останется. WiseAlex Цитата: не стоит - там десятки мегабайт | Это потому что пишется много (но редко) или потому что мало (но часто)? Возвращаясь к исходному вопросу Цитата: 2) Может ли влиять на стабильность работы вывод в файл из разных потоков без использования синхронизирующих объектов, например cerr<<"something"; или SomeOutputStream<<"Something"; | можно сказать, что, если выдача в лог ведется одним вызовом << или printf, то беспокоится ни за стабильность ни за корректность не стоит. Если одно сообщение выводится несколькими вызовами, то корректность теряется. Стабильность же есть всегда, поскольку операции вывода автоматом делают внутреннюю синхронизацию на буфер вывода. |