Python 심화18 - multiprocessing모듈

do yeon kim·2022년 6월 8일
0

Python(심화)_fastcampus

목록 보기
19/24

파이썬 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.운영체제와 메모리 개념


https://fastcampus.co.kr/dev_online_pyweb

0개의 댓글