나는 fork
이 코드를 부모 프로세스에서 자식 프로세스를 가지고 내가 알고 :자식 프로세스에서 자식 프로세스를 포크하는 방법 각각
os.fork()
이전 파이썬 세션의 복사본을 생성하고 병렬에서 엽니 다 , os.fork()
은 새 프로세스의 ID를 리턴합니다.
하위 프로세스에서 각각 하위 프로세스를 포크하려고하지만 항상 상위 프로세스에서 분기합니다. 그것이 어떻게 행해질 수 있는지.
import os
def child():
print('this is child', os.getpgid())
os._exit()
def parent():
while True:
newpid = os.fork()
if newpid ==0:
child()
else:
pids = (os.getpid(), newpid)
print("parent: %d, child: %d\n", pids)
reply = input("q for quit/c for new fork\n")
if reply == 'c':
continue
else:
break
parent()
위의 코드의 출력 : 당신이 아이에서 다시 포크()를 호출하면
parent: %d, child: %d
(1669, 3685)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3686)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3688)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3689)
q for quit/c for new fork
q
는'나는 아이에서 자식 프로세스를 포크 할 process' 왜 그것을 시도하지? 지금은 자녀 프로세스가 메시지를 인쇄하고 종료합니다. –