파이썬 Multi-Threading과 GIL에 대해서 알아두면 좋은 4가지!


  1. Concurrency(동시성)은 여러 작업이 순서 상관 없이 혼재되어 수행할 수 있음을 의미하고, Parallelism(병렬성)은 여러 작업이 동시에 수행될 수 있음을 의미합니다. 파이썬 threading 모듈을 사용하면 스레드 기반으로 동시성을 제공할 수 있습니다.

  2. 파이썬 인터프리터(Cpython)는 기본적으로 Thread-safe하지 못합니다. 인터프리터는 작업을 수행하기 위한 목적으로 다양한 전역 변수들을 사용하는데, 이는 모든 스레드에서 접근 가능하여 문제가 발생할 수 있습니다. 이를 간편하게 통제하고 관리하기 위해 인터프리터는 GIL(Global Interpreter Lock)이라는 글로벌 락을 사용합니다.

  3. 파이썬 GIL(Global Interpreter Lock)은 한 번에 하나의 스레드만 실행할 수 있도록 하는 메커니즘입니다. CPU 바운드 작업(계산 집중적 작업)에서는 GIL 때문에 멀티스레딩이 기대하는 성능 향상을 제공하지 못할 수 있습니다. 그러나 I/O 바운드 작업(파일 시스템 작업, 네트워크 요청 등)에서는 GIL의 영향을 덜 받기 때문에 멀티스레딩이 유용할 수 있습니다.

  4. 파이썬 3.13 버전부터는 PEP-703에서 제안한 --disable-gil 컴파일 옵션이 추가될 예정입니다. GIL을 사용하는 버전과 사용하지 않는 버전이 제공될 예정이고, 향후 2-3 버전 릴리즈 안에는 환경 변수를 통해서 GIL을 제어할 수 있도록 할 예정이라고 합니다.(https://github.com/python/cpython/issues/108219)


https://brunch.co.kr/@growthminder/140

[Python] Multi-Threading & GIL

Brunch Story

[Python] Multi-Threading & GIL

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 31일 오후 4:14

댓글 0

    함께 읽은 게시물

    코딩과 프로그래밍과 소프트웨어 개발은 다른 것이고, 코딩은 앞으로 대부분은 할 필요가 없어질 것은 맞다고 본다.

    ... 더 보기

     • 

    저장 6 • 조회 4,105


    그동안 적자지만 영업현금흐름이 좋고 보유현금도 넉넉했던 회사. 오늘의집이 적자라고 걱정한 사람은 별로 없었음.

    ... 더 보기

    [단독] '2조 유니콘' 오늘의집, 10년 만에 적자터널 탈출

    서울경제

    [단독] '2조 유니콘' 오늘의집, 10년 만에 적자터널 탈출

    조회 634


    🗞️ 간밤에 구글이 Gemini 2.5 Pro를 출시했는데요. 벤치마크 상으로는 GPT-4.5와 Claude 3.7 의 성능을 크게 뛰어넘는 결과를 보여줍니다. 특히 코딩능력이 매우 크게 향상되었는데요.

    ... 더 보기

     • 

    저장 8 • 조회 2,461


    👋 굿바이 Styled Components 🥹

    S

    ... 더 보기

    Thank you - styled-components

    opencollective.com

    Thank you - styled-components

     • 

    저장 9 • 조회 1,392


    React Router v7엔 뭐가 생겼을까

    R

    ... 더 보기

    Framework Adoption from Component Routes

    reactrouter.com

    Framework Adoption from Component Routes

     • 

    저장 8 • 조회 2,047


    router.refresh 와 window.location.reload?

    r

    ... 더 보기

    - YouTube

    youtu.be

     - YouTube

     • 

    저장 14 • 조회 1,542