Python/Advanced
[Python] Multiprocessing(2) - Naming, Parallel processing
unsungIT
2021. 5. 18. 05:07
멀티 프로세스를 그룹으로 실행하는 샘플코드
from multiprocessing import Process, current_process
import os
import random
import time
# 실행 방법
def square(n):
# 랜덤 sleep
time.sleep(random.randint(1, 3))
process_id = os.getpid()
process_name = current_process().name
# 제곱
result = n * n
# 정보 출력
print(f">> Process Name: {process_name}, Process ID: {process_id}")
print(f"*** Result of {n} square : {result}")
if __name__ == "__main__":
# 부모 프로세스 아이디
parent_process_id = os.getpid()
# 출력
print(f"Parent process ID {parent_process_id}")
# 프로세스 리스트 선언
processes = list()
# 프로세스 생성 및 실행
for i in range(1, 10): # 1 ~ 100 적절히 조절
# 생성
t = Process(name='process_'+str(i).zfill(2), target=square, args=(i,))
# 배열에 담기, 건건이 처리하기 불편해서 리스트로 처리함
processes.append(t)
# 시작
t.start()
# Join
for process in processes:
process.join()
# 종료
print("Main-Processing Done!")