저는 왜 그런지 모르지만 기본적으로 2 개의 프로세스를 실행하여 Popen 함수의 하위 프로세스를 사용합니다.Python Popen 프로세스가 의사 소통을 더 빨리 끝내지 못합니다.
commands = ['command 1', 'command 2']
for command in commands:
proc = Popen(command.split(' '))
proc.communicate() # line of interest
명령은 렌더링 프로세스이므로 완료되면 명령이 디렉토리에 이미지를 만듭니다. 그러나 이상하게도 의사 소통()을 통해 본질적으로 시리즈를 실행하면 예상 시간 (시간 1 + 시간 2)으로 끝납니다.
그러나 실제로 그들을 병렬로 실행해야하는 communications()없이 실행하면 둘 다 더 오래 걸립니다. 왜 이런 행동이 일어나고 그것을 어떻게 해결할 수 있는지 이해할 수 있습니까?
단지 2 개의 명령입니까, 아니면 실제로 더 많은 명령입니까? 이 리소스를 실행할 때 시스템 리소스는 어떻게 생깁니 까? 당신은 메모리 등으로 스왑을 치지 않을 거라 확신합니까? – mgilson
예, 실제로는 2 개 (작업이 많아서 평행합니다)입니다. CPU를 최대화하지 않으며 스왑 공간을 사용하지 않습니다. 거기에 충분한 자원 이상이있는 것 같습니다. –