Всем привет! Занимаюсь парсингом и тут мне "взбрело" в голову проверить объект Pool() из multiprocessing.pool.
Набросал такой код:
from multiprocessing.pool import Pool
def a(s):
with open('test.txt', 'a', encoding='utf-8') as f:
f.write(s + '!\n')
def main():
arr = []
for i in range(1000):
arr.append(str(i))
with Pool(20) as p:
p.map(a, arr)
if __name__ == '__main__':
main()
И что же он мне выдал?!
В txt файле 500 с чем-то строк (:
Пробовал разное количество потоков ставить. Без толку - всегда меньше 1000 строк.
Корректно показал только при Pool(1) :)
Почему данный модуль работает некорректно и каким образом исправить данную проблему?
Всем спасибо!