- 공부한 날짜: 2021.11.17
- 기록: 2021.11.23
- Coroutine: 단일(싱글)스레드, 스펙을 기반으로 동작하는 비동기 작업
- 스레드: os에서 관리하고, 일할 수 있는 리소스가 많은 상태, CPU 코어에서 실시간, 시분할 비동기 작업 -> 멀티스레드
- yield,send: 메인 <-> 서브
- 코루틴 제어, 상태, 양방향 전송
- 서브루틴: 메인루틴 호출 -> 서브루틴에서 수행(흐름제어)
- 코루틴: 단일 스레드 환경에서 동시성 작업을 하기위한 프로그래밍 기법
- 코루틴 : 루틴 실행 중 중지 -> 동시성 프로그래밍(멈춘 지점 기억)/ 스레드에 비해 오버헤드 감소
- 스레드: 싱글 스레드 -> 멀티스레드 -> 복잡 -> 공유되는 자원 -> 교착상태 발생 가능성 있음, 컨텍스트 스위칭 비용 발생, 자원 소비 가능성 증가
- def -> async(비동기), yield -> await
- 코루틴 ex1
- def이라고 선언돼있다고해서 모두 함수는 아니다. 함수/코루틴/제네레이터 모두 될 수 있음
-코루틴의 자료형은 generator
-yield 지점까지 서브 루틴 수행
- send(): 메인루틴과 서브루틴이 데이터를 교환할 수 있게 해주고 next 기능까지 한다
-주의해야할 점은 send()는 next()가 앞에 있어야 실행될 수 있다.
- 코루틴 ex2
- 코루틴 상태 : 1. GEN_CREATED(처음 대기 상태) 2. GEN_RUNNING(실행상태) 3. GEN_SUSPENDED(Yield 대기상태) 4. GEN_CLOSED(실행 완료 상태)
- 코루틴 ex3
'Dev Language > Python' 카테고리의 다른 글
[파이썬 중급]#5_4. future, wait, as_completed (0) | 2021.11.18 |
---|---|
[파이썬 중급]#5_3. Futures 동시성 (0) | 2021.11.18 |
[파이썬 중급]#5_1. 병행성 (0) | 2021.11.18 |
[파이썬 중급] #4_2. (0) | 2021.11.17 |
[파이썬 중급] #4_1. 일급함수 & 클로저 기초 (0) | 2021.11.17 |