Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.19;
Скачать: CL | DM;

Вниз

Совместный доступ к файлу.   Найти похожие ветки 

 
Brand   (2002-09-05 23:02) [0]

У кого есть какие предложения по наиболее лучшему способу организации совместного доступа к файлу? К примеру у меня 1000 (а может и больше) процессов, которые одновременно хотят что-нибудь записать в файл. Есть две мысли:
1. В каждом процессе организовать цикл из 10 повторений попыток открытия на запись. Но этого может и не хватить.
2. Организовать бесконечный цикл, пока не откроется файл для записи. Но неизвестно, как в этом случае поведет себя операционка.
Ваши предложения.


 
Gene Green   (2002-09-06 00:01) [1]

А если организовать некий массив (стэк, очередь)? И другим процессом брать поочередно задачи и работать с файлом?


 
nimble ©   (2002-09-06 06:32) [2]

Попробовать FileMapping!


 
MBo ©   (2002-09-06 06:41) [3]

TMultiReadExclusiveWriteSynchronizer


 
ЮЮ ©   (2002-09-06 07:35) [4]

> 1000 (а может и больше) процессов
И при меньшем количестве переходим на сервера :-))
Пусть каждый пишет в свой файл. А на сервере объединять.


 
[NIKEL] ©   (2002-09-06 07:42) [5]

все пишут в shared memory а когда надо, все это скидываеться на диск


 
ЮЮ ©   (2002-09-06 07:47) [6]

> 1000 (а может и больше) процессов
Не на одном же компе запущено столько процессов. A вы "shared memory" и т.п. Или на одном?


 
MBo ©   (2002-09-06 07:51) [7]

>1000 (а может и больше) процессов
Действительно впечатляет ;)



 
[NIKEL] ©   (2002-09-06 08:20) [8]

на счет >1000 я думаю товарисч погорячился :) я даже и не заметил :)
Можно посоветовать товарищу пересмотреть архитектуру и организацию программы или концепцию, так как из этого ничего хорошего не получится...
потоки хорошо работают когда они независимы. Но они начинают работать непродуктивно, когда они вынуждены синхронизироваться для доступа к общим ресурсам. Блокировка и критические секции отнюдь не добавляют бодрости системе.

Здесь лучше думать как избавиться от потоков или пересматривать форматы данных



 
Brand   (2002-09-06 22:57) [9]

А как это "shared memory"???
Просто задача состоит в том, чтобы все процессы имели доступ к некоторой инфе, которую (я так думал) лучше писать/читать в/из файла. Раньше (без процессов) делал все в массиве структур, но надо улучшать проект, т. е. организовать парпаллельную работу большого кол-ва копий программ. Я бы не против на тот-же массив структур, но не знаю как это организовать. Ведь каждый процесс ( не каждый поток в одном процессе!!!) как отдельная программа со своими переменными. А как сделать для них общие переменные?!?!?


 
MBo ©   (2002-09-07 06:44) [10]

CreateFileMapping и далее по хелпу WinSDK


 
[NIKEL] ©   (2002-09-07 22:05) [11]

а зачем сразу разные программы? советую понаблюдать как работает Explorer, открываешь папку, хопа, и у тебя новое окно - но это не новая копия експлорера, это новый поток, т.е. он ловит это дело и добовляет новый процесс к Основному, и все... еще раз подумайте над структурой программы


 
Brand   (2002-09-07 23:01) [12]

Да, CreateFileMapping было-бы, наверное неплохо, но все дело в том, что програмлю я в данном случае под FreeBSD, потому и вопрос звучал в общем "Как........".


 
[NIKEL] ©   (2002-09-07 23:09) [13]

хех, с этого и надо было начинать, хотя странно что в вопрос ты поместил D6 и Win2k ;)



Страницы: 1 вся ветка

Текущий архив: 2002.09.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-61281
Palladin
2002-08-23 15:52
2002.09.19
интересно, кто нибуть пишет не классы (class) а объекты (object)


1-61148
Losyara
2002-09-06 11:42
2002.09.19
Компоненты


1-61087
NeyroSpace
2002-09-09 17:38
2002.09.19
У кого-нибуть есть описание ф-ций библиотек управления VXD?


7-61333
nikd
2002-07-08 04:36
2002.09.19
Как спрятать чужое окно?


3-60940
Abu
2002-08-27 17:44
2002.09.19
проверка для Excel