[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Заменить файл в zip-архиве без создания временных файлов



Hello!

On Thursday 05 March 2009 23:37:38 Иван Лох wrote:
> > А можно синхронизировать доступ из многопоточного приложения? Создал
> > канал content.xml и теперь нужно сделать так, чтобы поток А записал
> > данные и запустил zip для замены файла в архиве, и только после этого
> > поток Б смог записать свои данные и вызвать zip. Собственно, это на
> > уровне приложения легко решается, но вдруг все уже придумано до нас.
>
> Блокировку на файл архива поставить?

Это как? Создавать файлик ".lock" потребует лишних операций с диском да и если 
заблокировавший процесс "помрет" придется как-то освобождать.  Впрочем, лучше 
по-честному - для каждого выделенного процесса при запуске свой канал создать, 
благо это решение масштабируется, в отличии от одного канала и блокировки тем 
или иным методом.

> > Где бы прочитать про сферу применения именованных каналов? Слышал про
> > них, но никогда не использовал и даже вот не понял, что они могут помочь
> > в вышеназванной задаче :-(
>
> Да какие у них сферы применения... Позволяют обманывать приложения не
> обученные работать с каналами. Ну и потом их много может быть. А читать
> надо фундаментальные книжки по программированию под Unix...

Там написано, что есть именованные каналы. Но особенных рекомендаций по 
применению как-то не видел. Ну, для админов что-то было, но для разработчиков 
не встречал подсказок. Книжки-то давно написаны, когда еще не было таких 
огромных объемов ОЗУ доступно, как сейчас, когда чем больше ОЗУ используешь, 
тем лучше, т.к. при минимуме записи можно обойтись огромными дешевыми SATA-
дисками (из которых уже из зеркальный рэйд недорог, вот чудеса).

Best regards.

Reply to: