2023.06.27 - [컴퓨터 구조 & 운영체제] - [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드
위 글을 바탕으로 파이썬으로 멀티 스레드를 구현
스레드 생성하기
import threading
import os
def foo():
print('thread id', threading.get_native_id()) #스레드 ID 출력
print('process id', os.getpid()) #PID 출력
if __name__ == '__main__':
print('process id', os.getpid()) #PID 출력
thread = threading.Thread(target=foo).start() #스레드 생성
위 코드는 스레드를 생성하여 스레드 ID와 PID를 출력하는 코드이다.
PID는 6172, 프로세스 ID는 8892가 출력되었다.
멀티 스레드 생성하기
import threading
import os
def foo():
print('thread id', threading.get_native_id()) #스레드 ID 출력
print('process id', os.getpid()) #PID 출력
if __name__ == '__main__':
print('process id', os.getpid()) #PID 출력
thread1 = threading.Thread(target=foo).start() #스레드 생성
thread2 = threading.Thread(target=foo).start() #스레드 생성
thread3 = threading.Thread(target=foo).start() #스레드 생성
위 코드는 스레드를 3개 생성해서 각 스레드는 foo()함수를 호출한다.
동일 프로세스에서 호출한 스레드이므로 출력하는 PID값은 동일하다.
하지만 프로세스 ID는 각 스레드가 다르므로 모두 다르다.
각기 다른 작업을 하는 멀티 스레드 생성하기
import threading
import os
def foo():
print('This is foo')
print('thread id', threading.get_native_id()) #프로세스 ID 출력
def bar():
print('This is bar')
print('thread id', threading.get_native_id()) #프로세스 ID 출력
def baz():
print('This is baz')
print('thread id', threading.get_native_id()) #프로세스 ID 출력
if __name__ == '__main__':
thread1 = threading.Thread(target=foo).start() #스레드 생성
thread2 = threading.Thread(target=bar).start() #스레드 생성
thread3 = threading.Thread(target=baz).start() #스레드 생성
위 코드는 스레드1은 foo(), 스레드 2는 bar(), 스레드 3은 baz()함수를 호출한다.
각 함수는 스레드 ID를 호출한다.
'Python Category > 기타' 카테고리의 다른 글
[Python] 파이썬으로 멀티 프로세스 만들기 (0) | 2023.06.28 |
---|