Найти - Пользователи
Полная версия: Работа с multiprocessing,Queue(),Manager()
Начало » Python для новичков » Работа с multiprocessing,Queue(),Manager()
1
kotey
Подскажите, можно ли ограничиться только очередями для сохранения данных в один файл разными процессами? Либо нужно использовать менеджер процессов? Вроде как обмен данными не требуется, но файл для сохранения результата один.
Если можно пример. Спасибо.
doza_and
Можно ограничиться файлом без всяких менеджеров и очередей (вы не наложили никаких требований на то как оно пишется).
kotey
doza_and
Можно ограничиться файлом без всяких менеджеров и очередей (вы не наложили никаких требований на то как оно пишется).
а что насчет коллизий? когда один процесс попытается сохранить файл открытый другим процессом?
Singularity
kotey
он может открыть его? О_о

Напиши код для теста ибо мне тоже интересно.
ziro
kotey

Держите пример Python: write to single file from multiple processes (ZMQ). Правда, как следует из названия, это не совсем то, что Вам нужно, поскольку там zmq используется. Но ПМСМ в данном случае это наиболее простой и идеальный по быстродействию вариант.
kotey
Singularity
koteyон может открыть его? О_о Напиши код для теста ибо мне тоже интересно.

def pars(arg):
    try:
        res = parse(arg)
    except:
         sys.exit()
    with open('res.txt','a') as s:   
         s.write(res.encode('utf-8') + '\n')   
         
pool = Pool(processes=4) 
try:
    result = pool.map_async(pars, lines)
    result.get(timeout=20)
except:
    sys.exit()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB