https://youtu.be/KduRAimE7Xk?si=c5Y5lYJAROxO3-qQ
이거 좀 신기...
라고 생각했는데..
다시 생각해보니까
"이 영상 좀 이상하지 않나? gil에서 말하는 멀티 쓰레드는 하드웨어 스레드 아냐?"
싶어서 다시 스레드랑 프로세스 정리해보기!
import threading
import time
def worker(n):
print(f"Thread {n} 시작")
time.sleep(2)
print(f"Thread {n} 종료")
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i,))
t.start()
threads.append(t)
for t in threads:
t.join()
time.sleep()
, 파일 읽기
, 네트워크 요청
등은 GIL을 자동으로 해제함from multiprocessing import Process
import time
def worker(n):
print(f"Process {n} 시작")
time.sleep(2)
print(f"Process {n} 종료")
processes = []
for i in range(5):
p = Process(target=worker, args=(i,))
p.start()
processes.append(p)
for p in processes:
p.join()
는 알잖아?