파이썬으로 프로세스 다루기

 

PID 값 확인하기


 

import os 
os.getpid()

 

import os 를 한 뒤 os.getpid()를 하면 PID를 볼 수 있음 

실행할 때마다 pid 값이 다름 → 운영체제가 실행할 때마다 PID 값을 배정해주기 때문

 

 

프로세스 계층구조 생성하기


프로세스 생성은 `from multiprocessing import Process`를 통해 할 수 있음

 

 from multiprocessing import Process
 
 # 프로세스 생성과 실행
 child = Process(target=함수명).start()

 

parent preocess의 PID와 자식 프로세스에서 찍은 PPID값이 같음(83145)

 

 

동시에 실행되는 3개의 프로세스 만들기

 

 

자식들의 PID는 각기 다른 프로세스니까 다르지만, 부모 프로세스의 PID(PPID)는 모두 동일함 

 

 

 

동일한 작업을 동시에 실행하는 프로세스

 

 

각기 다른 작업을 동시에 하는 프로세스

 

 


 

파이썬으로 스레드 다루기

 

스레드 만들기


import threading

# target에는 스레드가 실행할 함수명을 넣으면 됨
thread1 = threading.Thread(target=함수명).start()

# 스레드 ID 가져오기
threading.get_native_id()

 

프로세스를 공유하고 있기 때문에 PID 값이 같음

 

 

 

멀티 스레드 만들기


 

3개의 스레드를 만들어도, 프로세스를 공유하기 때문에 각각의 스레드의 PID 값은 같음

하지만 스레드 ID 값은 모두 다름 

 

 

 

동시에 동일한 작업을 실행하는 스레드

 

 

 

 

 

 

각기 다른 작업을 동시에 실행하는 스레드

 

 

 

 

 

 

 

출처 : 혼자 공부하는 컴퓨터구조 + 운영체제 (저자 강민철)