On Fri, Mar 06, 2009 at 12:02:09AM +0300, Alexey Pechnikov wrote: > Hello! > > On Thursday 05 March 2009 23:37:38 Иван Лох wrote: > > > А можно синхронизировать доступ из многопоточного приложения? Создал > > > канал content.xml и теперь нужно сделать так, чтобы поток А записал > > > данные и запустил zip для замены файла в архиве, и только после этого > > > поток Б смог записать свои данные и вызвать zip. Собственно, это на > > > уровне приложения легко решается, но вдруг все уже придумано до нас. > > > > Блокировку на файл архива поставить? > > Это как? Создавать файлик ".lock" потребует лишних операций с диском да и > если
Ядро Linux (и любого UNIX) содержит, по крайней мере, один механизм блокировок файла. man 2 flock man flock man 2 fcntl > Там написано, что есть именованные каналы. Но особенных рекомендаций по > применению как-то не видел. Ну, для админов что-то было, но для разработчиков > не встречал подсказок. Книжки-то давно написаны, когда еще не было таких > огромных объемов ОЗУ доступно, как сейчас, когда чем больше ОЗУ используешь, > тем лучше, т.к. при минимуме записи можно обойтись огромными дешевыми SATA- > дисками (из которых уже из зеркальный рэйд недорог, вот чудеса). Как раз книжки написаны в те времена когда создание временного файла влекло существенный оверхед, из-за того, что памяти было мало и не было tmpfs. В то время именованные каналы использовались очень широко. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

