현재 여러 사이트의 데이터를 스크랩하고 있습니다. 스크래퍼 코드는 모듈 (x, y, z, a, b)에 저장됩니다.다중 처리 프로그램 - 병렬로 실행되지 않음
여기서 x.dump는 파일을 사용하여 스크랩 한 데이터를 저장하는 기능입니다. 덤프 함수는 'input'이라는 단일 인수를 사용합니다. 주 : 모든 덤프 기능이 동일하지 않습니다.
각 덤프 기능을 병렬로 실행하려고합니다. 다음 코드는 정상적으로 실행됩니다. 그러나 나는 그것이 여전히 연속 된 순서 x와 y를 따르는 것으로 나타났습니다 ... 실행을 위해서.
문제를 해결하는 올바른 방법입니까?
멀티 스레딩과 멀티 프로세싱은 병렬 프로그래밍의 유일한 기본 방법입니까? run()
는 작업 자체를 구현하는 방법이기 때문이다
from multiprocessing import Process
import x.x as x
import y.y as y
import z.z as z
import a.a as a
import b.b as b
input = ""
f_list = [x.dump, y.dump, z.dump, a.dump, b.dump]
processes = []
for function in f_list:
processes.append(Process(target=function, args=(input,)))
for process in processes:
process.run()
for process in processes:
process.join()
, 당신은 풀을 사용하여 고려할 수 있습니다. 고정 된 수의 작업자 (일반적으로 CPU 코어 수)와 소비되는 작업 큐가 있습니다. – Davidmh