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