파이썬 다중 처리 모듈을 탐색 중이며 다음 코드가 아무 것도 인쇄하지 않는 이유를 이해하지 못합니다. while 루프가 없으면 프로그램은 Worker_1을 예상대로 인쇄합니다. 예상대로 내 시스템 (파이썬 리눅스 2.6 & 2.7)에파이썬 다중 처리 : 작업자 함수에서 while 루프로 출력되지 않습니다.
는import multiprocessing, time
def worker1():
print 'Worker_1'
while 1:
print 'Worker_1'
time.sleep(3)
return
if __name__ == '__main__':
jobs = []
p = multiprocessing.Process(target=worker1)
jobs.append(p)
p.start()
멀티 프로세싱 모듈에서 마스터가 아니므로 지금 테스트 할 수는 없지만'p.join()'을'p.start()'뒤에 추가해보십시오. 하위 프로세스가 시작된 후 주 프로그램이 종료되면 하위 프로세스가 계속 진행됩니까? 나는 그렇게 생각하지 않지만, 나는 모른다. 이것은 당신이 원할 때 작업자를 멈추게하기위한 몇 가지 헛소리를해야한다는 것을 의미합니다. 또는 포크 모듈을 살펴보십시오. –