inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

동시성 vs 병렬성

파이썬과 동시성관련 질문.

해결된 질문

393

따라란따라란

작성한 질문수 14

2

안녕하세요. 강의 잘듣고 있습니다.
 
운영체제에서 배우길 현대컴퓨터는 대부분 멀티쓰레드 및 여러개의 프로세스가 스위칭이 일어나면서 동작하는 것으로 압니다.
 
예를 들어 인프런 동영상 강의를 들으면서, 파이참을 키고 있고, 만약 싱글코어 컴퓨터라고 한다면,
저 크롬과 파이참의 프로세스가 스위칭되면서 실행되고 있겟죠?
 
그런데 파이썬 코드를 짜고 파이참내에서 실행을 시킨다면,(async나 머 그런거 없이 일반적인 코드로)
 
파이썬 코드 돌아가는 것 자체가 하나의 프로세스가 되어서 크롬 프로세스와 스위칭이 되지만,
 
파이썬 코드 자체는 동시적으로 작동하는 건가요?
 
만약 async await를 붙이면 파이썬 코드를 실행시킨 프로세스도 여러개로 쪼개지는(?) 건가요?
 
약간 공전 자전 같은 느낌?

python FastAPI 동시성

답변 1

1

윤상석

안녕하세요!

말씀해주신 것처럼 컴퓨터 시각에서 보면 운영체제가 알아서 프로세스 스케줄링을 해줍니다.

운영체제가 인프런 강의, 파이썬 프로그램, 게임 프로그램을 메모리에 올려서 프로세스로 만들고 각각의 실행 우선순위를 아주 작은 타임 슬라이스로 쪼개서 스위칭하면서 작업을 진행합니다. 사용자 입장에서는 강의를 들으면서 파이썬 프로그램을 돌리는 것이 동시적으로 느껴지게 되는 것이죠. 

파이썬 프로그램이 블로킹이 되건 여러 CPU 코어를 사용하건 스레드(사용자수준)를 사용하건 운영체제는 신경쓰지 않습니다. 예를들어 게임을 하다가 게임이 모종의 이유로 다운되었을때 바탕화면에 가도 브라우저 등이 잘 동작하는 것처럼 말이죠.

사용자 수준과 운영체제 수준은 구분되어 있습니다. 물론 파이썬 프로그램과 인프런 강의에서 사용되는 메모리(RAM)에서 파이썬 프로그램이 전부 다 써버리면 인프런 강의에 영향을 끼치겠지만 단순 파이썬 프로그램이 블로킹이 되거나 동시성/병렬성으로 돌아간다고 해도 인프런 강의 프로그램과는 별개로 돌아가게 됩니다.

이제 파이썬 프로그램 입장에서 보면 만약에 async await 키워드가 붙은 경우에 코루틴 기반일 경우는 싱글 프로세스에서 싱글 스레드로, 멀티 스레드 기반일 경우에 멀티 스레딩으로, 멀티 프로세스 기반일 경우에 멀티 프로세싱으로 돌아가게 됩니다.

파이썬 프로그램이 멀티 프로세싱으로 개발된다면 파이썬 프로세스가 쪼개진다는 것보다 추가 자원(스레드, 프로세스 등)을 더 사용한다는 표현이 맞습니다!

좋은 질문 감사합니다 :)

 

 

0

따라란따라란

친절한 답변 감사합니다~!

이해가 될듯 말듯 한데, 조금만 더 고민해보면 될것같습니다~!

대규모 크롤링 시 동시 요청 수 제어 방법

0

112

2

AWS LighSail 접근 불가

0

148

1

강의상의 readme와 배포되어 있는 것이 다른 것 같아요

0

112

1

book_scraper.py 에서 import get_secret 관련 질문

0

114

1

ThreadPoolExecutor 중간에 멈추는 법

0

307

1

몽고Db 기초 질문

0

205

1

async await 문법 질문

0

243

1

멀티 스레딩 질문..

0

200

1

교안 제공은 안되나요?

0

231

1

TypeError: field Config is defined without type annotation

0

264

1

RuntimeWarning: Enable tracemalloc to get the object allocation traceback

0

1723

1

jinja2templates

0

252

1

몽고DB 설정 관련 질문

0

250

1

비동기 함수를 동기적인 실행으로 만드는 부분 질문입니다

1

324

2

proxy 사용 질문

0

269

1

AWS Lightsail SSL handshake failed 오류 문의드립니다.

0

501

1

동시성과 병렬성

0

329

1

python select linter ? 오류

1

744

2

수업질문

1

356

1

response 객체에서 키값으로 조회 시 KeyError 발생

0

579

1

from config import get_secret 질문

0

391

1

파이썬 코루틴활용 영상 질문

0

283

1

가상환경 설정 질문

0

324

1

pydantic import error

0

1234

2