본문 바로가기

concurrency

(2)
[Python] 병행성(Concurrency)(2) - generator # 병렬성(Parallelism) : 여러 컴퓨터가 여러 작업을 동시에 수행 -> 속도# 병행성(Concurrency) : 한 컴퓨터가 여러일을 동시에 수행# -> 단일 프로그램 안에서 여러일을 쉽게 해결# 이터레이터, 제네레이터# Iterator, Generator# 파이썬 반복 가능한 타입# for, collections, text file, List, Dict, Set, Tuple, unpacking, *args Iterator, Generator - 값을 차례대로 가져올 수 있음 ✅ Iterator (이터레이터)"하나씩 값을 꺼낼 수 있는 객체"__iter__()와 __next__() 메서드를 가진 객체for 문, next() 함수와 함께 사용 가능값을 직접 기억하고 관리함 (내부 상태) ✅ G..
[Python] Blocking vs Non-Blocking, Sync vs Async Blocking vs Non-blocking Blocking - 시스템 콜 요청시 -> 커널 IO 작업 완료 시 까지 응답 대기 - 제어권(IO작업) -> 커널 소유 -> 응답(Response)전 까지 대기(Block) -> 다른 작업 수행 불가(대기) Non-blocking - 시스템 콜 요청시 -> 커널 IO 작업 완료 여부 상관없이 즉시 응답 - 제어권(IO작업) -> 유저 프로세스 전달 -> 다른 작업 수행 가능(지속) -> 주기적 시스템 콜 통해서 IO 작업 완료 여부 확인 Async vs Sync Sync : IO 작업 완료 여부에 대한 Noty는 유저프로세스(호출하는 함수) -> 커널(호출되는 함수) Async : IO 작업 완료 여부에 대한 Noty는 커널(호출되는 함수) -> 유저프로세스..