[운영체제] 프로세스와 스레드 사용해보기

Local Gaji·2024년 1월 9일
0

운영체제

목록 보기
4/15

🎈 프로세스

import os
from multiprocessing import Process


def printer(name: str):
    print("NAME : ", name)
    print("PID : ", os.getpid())
    print("PPID : ", os.getppid())


if __name__ == '__main__':
    print("Python : ", os.getpid())
    process1 = Process(target=printer, args=("로컬",))
    process2 = Process(target=printer, args=("가지",))
    process1.start()
    process2.start()

multiprocessing 모듈을 사용해 파이썬으로 멀티 프로세싱을 사용해볼 수 있다.

먼저 실행할 함수와 파라미터를 지정해주고 Process 객체의 인스턴스를 생성한다.
start() 메서드를 사용하면 해당 프로세스를 실행할 수 있다.

프로세스가 동시에 실행돼서 섞여서 출력되기도 한다.
프로세스 인스턴스를 생성한 곳의 pid가 프로세스들의 ppid가 되었다.


🎈 스레드

import os
import threading


def printer(name: str):
    print("NAME : ", name)
    print("PID : ", os.getpid())
    print("thread ID : ", threading.get_native_id())


if __name__ == '__main__':
    print("Python : ", os.getpid())
    thread1 = threading.Thread(target=printer, args=("로컬",))
    thread2 = threading.Thread(target=printer, args=("가지",))
    thread1.start()
    thread2.start()

프로세스와 사용방법이 매우 유사하다. threading.get_native_id() 를 이용해 스레드 ID 를 확인할 수 있다.

프로세스ID는 동일하고 스레드 ID는 달라진 걸 볼수 있다. 근데 얘는 아무리 실행시켜도 순서가 섞여서 나오지는 않는듯..?

0개의 댓글