파이썬 multiprocessing모듈
import multiprocessing as mp
#프로세스에서 실해할 함수
def sub_process(name):
print("[sub] start")
print(name)
cp = mp.current_process()
print(f"[sub] pid : {cp.pid}")
print("[sub] end")
#메인 프로세스
if __name__ == "__main__" : #메인모듈일때만 실행한다.
print("[main] start")
p =mp.Process(target=sub_process, args = ("coding",))
p.start()
cp = mp.current_process() #프로세스의 아이디 출력
print(f"[main] pid : {cp.pid}")
print("[main] end")
파이썬 multiprocessing모듈
from multiprocessing import Process
import time
#클래스로 지정하기
class SubProcess(Process):
def __init__(self, name):
Process.__init__(self)
self.name = name
def run(self):
print(f"[sub] {self.name} start")
time.sleep(5)
print(f"[sub] {self.name} end")
if __name__ == "__main__":
print("[main] start")
p = SubProcess(name = "coding")
p.start()
p.join() #메인프로세스가 서브프로세스가 종료될때까지 기다린다.
print("[main] end")
파이썬 multiprocessing모듈
from multiprocessing import Process
import time
#클래스로 지정하기
class SubProcess(Process):
def __init__(self, name):
Process.__init__(self)
self.name = name
def run(self):
print(f"[sub] {self.name} start")
time.sleep(5)
print(f"[sub] {self.name} end")
if __name__ == "__main__":
print("[main] start")
p = SubProcess(name = "coding")
p.start()
time.sleep(1)
#프로세스가 살아있는지 검사
print(p.is_alive())
#강제종료
if p.is_alive():
p.terminate()
print("[main] end")
추가 학습
1.스레드간 데이터 처리(lock)
2.프로세스간의 데이터 전송(Queue, Pipe)
3.속도비교
4.운영체제와 메모리 개념