[Python] 파이썬으로 멀티 프로세스 만들기Language/Python2023. 6. 28. 00:55
Table of Contents
2023.06.27 - [컴퓨터 구조 & 운영체제] - [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드
위 글을 바탕으로 파이썬으로 멀티 프로세스를 구현
프로세스 PID 얻기
import os
print('hello os')
print('my pid is', os.getpid()) #프로세스의 PID를 얻어옴
위 코드는 프로세스의 PID를 얻어오는 코드이다.
PID는 22468이라고 알려준다.
자식 프로세스 생성하고 PID값 얻어오기
from multiprocessing import Process
import os
def foo():
print('child process', os.getpid()) #자식 PID 출력
print('my parent is', os.getppid()) #부모 PID 출력
if __name__ == '__main__':
print('parent process', os.getpid()) #부모 PID 출력
child = Process(target=foo).start()
위 코드는 부모 프로세스가 자식 프로세스를 생성하고, 자식 프로세스는 foo() 함수를 호출하여 자신의 PID와 부모의 PID(PPID)를 출력한다.
부모가 자식을 생성했으므로, 부모의 getpid() 리턴값과, 자식의 getppid() 리턴값은 같다.
부모 프로세스의 PID는 10940이고, 자식 프로세스의 PID는 16492라고 출력된다.
자식 프로세스 여러 개 생성하기
자식 프로세스는 여러 개 만들 수 있다.
from multiprocessing import Process
import os
def foo():
print('child process', os.getpid()) #자식 PID 출력
if __name__ == '__main__':
child1 = Process(target=foo).start() #자식1 생성
child2 = Process(target=foo).start() #자식2 생성
child3 = Process(target=foo).start() #자식3 생성
각기 다른 작업하는 자식 프로세스 생성하기
자식 프로세스는 각기 다른 작업을 수행할 수도 있다.
from multiprocessing import Process
import os
def foo():
print('This is foo')
print('process id', os.getpid()) #PID 출력
def bar():
print('This is bar')
print('process id', os.getpid()) #PID 출력
def baz():
print('This is baz')
print('process id', os.getpid()) #PID 출력
if __name__ == '__main__':
child1 = Process(target=foo).start()
child2 = Process(target=bar).start()
child3 = Process(target=baz).start()
자식 1은 foo(), 자식 2는 bar(), 자식 3은 baz()함수를 호출한다.
각 함수는 PID를 출력한다.
'Language > Python' 카테고리의 다른 글
[Python] 파이썬 기본적인 용어 (0) | 2023.08.23 |
---|---|
[Python] 파이썬으로 멀티 스레드 만들기 (0) | 2023.06.29 |
[Python] 내장 함수 (0) | 2022.12.09 |
[Python] 예외 처리 (2) | 2022.12.09 |
[Python] 파일 입출력 (1) | 2022.12.08 |