멀티 프로세스를 그룹으로 실행하는 샘플코드
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!")
'Python > Advanced' 카테고리의 다른 글
[Python] Multiprocessing(4) - Sharing state (0) | 2021.05.19 |
---|---|
[Python] Multiprocessing(3) - ProcessPoolExecutor (0) | 2021.05.18 |
[Python] Multiprocessing(1) - Join, is_alive (0) | 2021.05.17 |
[Python] Thread(5) - Producer and Consumer Using Queue (0) | 2021.05.17 |
[Python] Thread(4) - Lock, Unlock (0) | 2021.05.17 |