Size: a a a

2021 February 24

DK

David Kravets in supapro.cxx
Slavick
А есть возможность просто допустим, чтобы один поток писал до 500 строки, а второй после. Чтобы небыло мусора
А в чем проблема ?
источник

s

std::slavik in supapro.cxx
Slavick
А есть возможность просто допустим, чтобы один поток писал до 500 строки, а второй после. Чтобы небыло мусора
самый простой вариант - писать в файл в одном потоке
источник

s

std::slavik in supapro.cxx
а данные для записи формировать в нескольких
источник

S

Slavick in supapro.cxx
std::slavik
а данные для записи формировать в нескольких
Это у меня реализовано
источник

s

std::slavik in supapro.cxx
ну так это норм
источник

s

std::slavik in supapro.cxx
обычно есть воркер который работает с файлом
какая-то очередь в которую пишут другие потоки
а воркер из этой очереди пишет в файл
то что ему накидали потоки
источник

S

Slavick in supapro.cxx
Хорошо, спасибо за информацию. Буду думать. Если ничего не выйдет оставлю как есть
источник

s

std::slavik in supapro.cxx
можно еще сделать синхронизацию через мьютекс в программе
но это не очень хорошо на мой взгляд
источник

S

Slavick in supapro.cxx
std::slavik
можно еще сделать синхронизацию через мьютекс в программе
но это не очень хорошо на мой взгляд
Окей, буду пробовать
источник

s

std::slavik in supapro.cxx
а вообще - скорей всего для вашей задачи есть библиотека какаянить
логирования там
или субд
которые эти вопросы разруливают внутри себя
и предоставляют гарантии
источник

DK

David Kravets in supapro.cxx
std::slavik
можно еще сделать синхронизацию через мьютекс в программе
но это не очень хорошо на мой взгляд
Почему это ?
источник

s

std::slavik in supapro.cxx
David Kravets
Почему это ?
потому что в таком случае мы полагаемся не на состояние реальное файла, а на свои внутренние флаги
источник

s

std::slavik in supapro.cxx
в которых мы можем накосячить во-первых
источник

s

std::slavik in supapro.cxx
во-вторых если будет другой процесс с файлом работать - ему на эти наши блокировки наплевать будет
он о них и знать не будет
источник

DK

David Kravets in supapro.cxx
std::slavik
потому что в таком случае мы полагаемся не на состояние реальное файла, а на свои внутренние флаги
Не делать unlock пока поток не закроет файл
источник

s

std::slavik in supapro.cxx
David Kravets
Не делать unlock пока поток не закроет файл
окей - другой процесс такой же запускается
источник

s

std::slavik in supapro.cxx
и тоже начинает писать
источник

s

std::slavik in supapro.cxx
у него свои такие же мьютексы
а наших он не видит
источник

DK

David Kravets in supapro.cxx
std::slavik
окей - другой процесс такой же запускается
Ну эт уже межд процессами
источник

s

std::slavik in supapro.cxx
и вся наша синхронизация посыпалась
источник