[Python] thread와 process 그리고 GIL

변도진·2025년 9월 30일

Python

목록 보기
13/16

시작하며

Python의 병렬 처리 기법 중 multi-thread와 multi-process를 비교해 볼 것이다.
또한 Python의 GIL이 병렬 처리에 어떠한 영향을 주는지 알아보자.

결과

작업 수 = 4
N = 100,000,000

def py_heavy_work(n):
    """순수 Python 연산 작업"""
    s = 0
    for i in range(n):
        s += (i * i) % 97
    return s
Python MTPython MPRust MT(GIL o)Rust MT(GIL x)Rust MP
20.610초5.436초0.270초0.073초0.149초

Python의 MT와 MP 비교 그리고 rust binding으로 GIL을 해제했을 때의 비교이다.

정리

CPU bound 기준으로 GIL이 있는 MT는 쓰래기다.
그러나 GIL을 해제 가능하다면, 높은 퍼포먼스를 보여준다.(MP의 비해 오버해드가 낮음)

그리고 CPU bound를 신경 쓸 작업이면 Python을 안쓰면 된다.

profile
낚시하고 싶다.

0개의 댓글