Мультипроцессорность

351 просмотра
0
0 Комментариев

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

from multiprocessing import Process
    def update(self, request):
        uid = str(uuid.uuid4())
        Process(target=self.save_file, args=(uid, request)).start()
        return uid


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

В один файл нельзя, например тут должно быть 2001 строк, а по факту 1850

import multiprocessing
file='1.tmp'
open(file, 'w').write('')
 
def write(c):
    for r in range(c):
        with open(file, 'a') as f:
            f.write('%s\n' % r)
    print('count {}, r {}'.format(c, r))
 
if __name__ == '__main__':
    with multiprocessing.Pool(processes=3) as pool:
        pool.map(write, [1000]*2)
 
    print('len', len(list(open(file))))

out:

count 1000, r 999
count 1000, r 999
len 1850

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up