Python/파이썬 심화

Futures 모듈이란?

monstro 2025. 10. 19. 20:14
728x90
반응형

- 개요

파이썬에는 파이썬에만 존재하는 개념인 GIL(Global Interperter Lock)이 존재한다

GIL은 다수의 스레드가 기계어 번역 이전의 바이트코드를 실행하지 못하도록 막는 mutex의 일종으로서

다수의 스레드하나의 자원에 접근하는 것을 막기 위해 자원을 거는 역할을 수행한다

따라서 GIL에 의해 Context 전환을 위한 비용이 발생한다

이때 concurrent.futures 모듈을 통해 GIL을 우회할 수 있다

 

- concurrent.futures 모듈

concurrent.futures 모듈은 비동기 실행을 위한 API를 사용하기 쉽도록 개선한 모듈이다

해당 모듈을 사용하면 얻을 수 있는 장점은 다음과 같다

  • 복잡하게 구성된 멀티스레딩 API멀티프로세싱 API통일
  • 작업에 대한 취소 / 완료 여부 체크 / 타임아웃 / 콜백 동기화 코드를 매우 쉽게 작성할 수 있음
  • GIL을 우회할 수 있음
  • 동시성병렬성모두 구현할 수 있음

 

- concurrent.futures의 장점과 사용할 수 있는 작업

concurrent.futures 모듈을 사용하면 지연시간(Block)을 통해 리소스의 낭비를 방지할 수 있다

이때 해당 모듈을 사용할 수 있는 작업들은 다음과 같다

  • 1) 오랜 시간이 소모되는 작업
  • 2) 네트워크를 통해 데이터를 다루는 작업
  • 3) 파일 처리 작업

 

728x90
반응형

'Python > 파이썬 심화' 카테고리의 다른 글

Futures 모듈 (2)  (0) 2025.10.25
Futures 모듈 (1)  (0) 2025.10.19
코루틴 (2)  (0) 2025.10.12
코루틴 (1)  (0) 2025.10.12
제너레이터 + itertools 모듈  (0) 2025.09.28