Re: Заменить файл в zip-архиве без создания временных файлов
Hello!
On Thursday 05 March 2009 23:37:38 Иван Лох wrote:
> > А можно синхронизировать доступ из многопоточного приложения? Создал
> > канал content.xml и теперь нужно сделать так, чтобы поток А записал
> > данные и запустил zip для замены файла в архиве, и только после этого
> > поток Б смог записать свои данные и вызвать zip. Собственно, это на
> > уровне приложения легко решается, но вдруг все уже придумано до нас.
>
> Блокировку на файл архива поставить?
Это как? Создавать файлик ".lock" потребует лишних операций с диском да и если
заблокировавший процесс "помрет" придется как-то освобождать. Впрочем, лучше
по-честному - для каждого выделенного процесса при запуске свой канал создать,
благо это решение масштабируется, в отличии от одного канала и блокировки тем
или иным методом.
> > Где бы прочитать про сферу применения именованных каналов? Слышал про
> > них, но никогда не использовал и даже вот не понял, что они могут помочь
> > в вышеназванной задаче :-(
>
> Да какие у них сферы применения... Позволяют обманывать приложения не
> обученные работать с каналами. Ну и потом их много может быть. А читать
> надо фундаментальные книжки по программированию под Unix...
Там написано, что есть именованные каналы. Но особенных рекомендаций по
применению как-то не видел. Ну, для админов что-то было, но для разработчиков
не встречал подсказок. Книжки-то давно написаны, когда еще не было таких
огромных объемов ОЗУ доступно, как сейчас, когда чем больше ОЗУ используешь,
тем лучше, т.к. при минимуме записи можно обойтись огромными дешевыми SATA-
дисками (из которых уже из зеркальный рэйд недорог, вот чудеса).
Best regards.
Reply to: