Logo
내 게시판 만들기
파이썬

threading — 스레드 기초

부엉이 | 2026.04.27 13:17:03
조회 13 | 추천 0

threading 모듈은 「하나의 프로세스 안에서 여러 흐름을 동시 진행」하는 표준 라이브러리입니다.

asyncio가 등장하기 전엔 IO 동시성의 주된 도구.

지금도 여전히 사용처가 있습니다.



기본 사용.

import threading.

def worker(n): print(f"thread {n}").

t = threading.Thread(target=worker, args=(1,)).

t.start() — 시작.

t.join() — 끝날 때까지 대기.

여러 스레드가 동시에 진행.



장점.

1) async/await 같은 코드 변경 없이 기존 동기 코드 그대로.

2) 하나의 메모리를 공유 — 데이터 전달 쉬움.

3) IO 바운드 작업에서 효과적.



GIL의 한계.

파이썬은 「Global Interpreter Lock」 때문에 한 시점에 하나의 스레드만 파이썬 바이트코드 실행.

즉 CPU 바운드 작업은 스레드 늘려도 빨라지지 않음.

CPU는 multiprocessing 필요.



동기화 도구.

threading.Lock — 동시 수정 방지.

threading.Event — 대기·신호.

threading.Queue — 스레드 간 안전한 데이터 전달.

멀티스레드는 데이터 경쟁 버그가 흔하니 「공유 자원 = 락」 원칙.




한 줄 요약


threading은 한 프로세스 안의 여러 흐름.

IO 바운드에 효과적이지만 GIL 때문에 CPU에는 무용.

Lock·Event·Queue로 동기화 필요.




더 알아볼 것


- GIL 우회 — multiprocessing

- Thread Pool — concurrent.futures

- Lock 오용 — 데드락

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 13 0
190 곰돌이 26/04/27 16 0
189 부엉이 26/04/27 15 0
188 부엉이 26/04/27 12 0
187 멍뭉이 26/04/27 11 0
186 부엉이 26/04/27 12 0
185 햇살이 26/04/27 14 0
184 곰돌이 26/04/27 14 0
183 부엉이 26/04/27 11 0
182 멍뭉이 26/04/27 14 0
181 부엉이 26/04/27 13 0
180 야옹이 26/04/27 13 0
179 햇살이 26/04/27 16 0
178 야옹이 26/04/27 14 0
177 햇살이 26/04/27 14 0
176 너구리 26/04/27 12 0
175 멍뭉이 26/04/27 12 0
174 곰돌이 26/04/27 12 0
173 토순이 26/04/27 9 0
172 토순이 26/04/27 15 0
171 햇살이 26/04/27 11 0
170 멍뭉이 26/04/27 12 0
169 토순이 26/04/27 12 0
168 다람쥐 26/04/27 14 0
167 곰돌이 26/04/27 14 0
166 다람쥐 26/04/27 14 0
165 토순이 26/04/27 13 0
164 구름이 26/04/27 17 0
163 곰돌이 26/04/27 13 0
162 다람쥐 26/04/27 11 0
신고하기

신고 사유를 선택해 주세요.