[FastAPI] 동시성과 병렬성 개념 정리

2024. 3. 31. 23:04·Minding's Programming/FastAPI
728x90
반응형

 

FastAPI를 공부하는데 필요한 동시성과 병렬성에 대해 정리해보았다.

해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다.

 

 

동시성 (Concurrency)

- 동시성은 한 번에 여러 작업을 동시에 다루는 것을 의미한다.

- 즉, 하나의 주체가 스위칭을 통해 여러 작업을 진행한다는 것이다. (코루틴이 대표적인 예시)

- A작업을 하는 동안 B작업으로 스위칭, A작업이 끝나지 않았다면 C작업으로 스위칭...

- 멀티 스레딩의 개념이지만 싱글 스레드에서 사용되기도 한다.

- 싱글 코어뿐 아니라 멀티 코어에서도 동시성 사용 가능하다.

- 한 주체가 임의적으로 여러 작업을 진행하는 것이기때문에 일종의 논리적 개념이라고 할 수 있다.

 

 

병렬성 (Parallelism)

- 1개의 주체(스레드)가 아닌 각 작업 마다 스레드가 하나씩 붙어 진행하는 작업을 뜻한다.

- CPU의 멀티 프로세싱의 개념이다. (3코어 = 3개의 작업을 병렬적으로 진행가능)

- 멀티 코어 환경에서만 가능하므로 물리적 개념이다.

- Python 환경에서는 GIL(Global Interpreter Lock)으로 인해 병렬성 구현이 불가하다.

- Python에서는 멀티 스레드를 '병렬성'으로 구현할 수 없다. '동시성'으로만 구현 가능

 

*GIL(Global Interpreter Lock): Python의 한 번에 1개의 스레드만 유지하도록 하는 제어 장치로, 여러 스레드가 자원을 공유할 경우 충돌이 일어나 어느 한 스레드로 인해 다른 스레드가 차단되는 것을 방지한다. 멀티 스레딩의 위험성으로부터 보호하는 장치인 것과 동시에 Python에서 병렬 연산을 구현하지 못하는 이유이기도 하다.

728x90

'Minding's Programming > FastAPI' 카테고리의 다른 글

[FastAPI/AWS/Uvicorn] AWS에 프로젝트 배포하기  (0) 2024.06.20
[FastAPI] 파이썬 멀티 프로세싱  (0) 2024.04.03
[FastAPI] 파이썬 멀티 스레딩 사용해보기  (0) 2024.04.01
[FastAPI] 동기와 비동기, 코루틴 개념 정리  (0) 2024.03.03
[FastAPI] FastAPI 특장, 설치 방법  (0) 2024.01.14
'Minding's Programming/FastAPI' 카테고리의 다른 글
  • [FastAPI] 파이썬 멀티 프로세싱
  • [FastAPI] 파이썬 멀티 스레딩 사용해보기
  • [FastAPI] 동기와 비동기, 코루틴 개념 정리
  • [FastAPI] FastAPI 특장, 설치 방법
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬게임개발
    코딩테스트
    Airflow
    머신러닝
    칼만필터는어렵지않아python
    pygame
    KalmanFilter
    AWS
    FastAPI
    딥러닝
    데이터 엔지니어
    칼만필터
    파이게임
    KBO
    칼만필터는어렵지않아파이썬
    django
    메이저리그
    게임개발
    django python
    질롱코리아
    Python
    mlb stats api
    에어플로우
    야구
    넘파이
    칼만필터는어렵지않아
    파이썬
    프로그래머스
    데이터분석
    MLB
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[FastAPI] 동시성과 병렬성 개념 정리
상단으로

티스토리툴바