일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바스크립트
- dockerfile
- 쿠버네티스
- Python
- POD
- elasticsearch
- intervals
- IAC
- leetcode
- WSGI
- YAML
- FastAPI
- K8S
- DevOps
- Deployment
- asgi
- EC2
- event loop
- asyncio
- ansible
- github
- AWS
- docker
- Kubernetes
- ebs
- IAM
- terraform
- EKS
- Django
- Service
- Today
- Total
목록asyncio (5)
궁금한게 많은 개발자 노트
Future Object퓨처 객체는 어떠한 작업의 실행 상태 및 결과를 저장하는 객체입니다. 실행 상태란 해당 작업이 진행 중인지(PENDING), 취소되었는지(CANCELLED), 종료되었는지(FINISHED)를 나타냅니다. 작업의 완료라 함은 CANCELLED 또는 FINISHED 상태를 가리킵니다. 그리고 실행 결과라 함은 해당 작업의 결과 값 혹은 그 작업을 진행하면서 발생한 예외 객체를 말합니다. 예외가 발생한 경우에도 상태는 FINISHED가 됨을 주의해야 합니다.중요한 점으로는 작업의 실행 상태 및 결과를 나타낼 뿐, 작업의 실행을 개시하지 않는다는 점입니다. 퓨처 객체의 중요한 메소드 중하나는 add_done_callback()입니다. 이 메소드를 호출하면 해당 퓨처 객체가 완료될 떄 호출..
동시 프로그래밍(concurrent programming)은 기본적으로 여러 스레드를 활용하여 다중 스레드 프로그래밍을 뜻합니다. 하지만 다중 스레드 환경에서 thread-safe한 프로그래밍을 개발하는 것은 쉽지 않고 고려해야할 사항이 많습니다. 또한, 싱글 코어 프로세서에서 다중 스레드 프로그램을 돌리면 성능이 기대했던 것 보다 나오지 않는 문제가 있습니다. 그래서 단일 스레드에서 비동기적으로 동시에 여러 task를 처리하는 비동기 프로그래밍이 등장하게 되었습니다. python3.4에서 asyncio가 표준 라이브러리로 채택이 되고, 3.5버전에서는 async/await 키워드가 문법으로 채택되면서 파이썬에서도 비동기 프로그래밍이 가능하게 되었습니다. Event Loop 동작 원리 파이썬의 이벤트 루..
[ Task 동시 실행 - asyncio.create_task() ] 위에서 이벤트 루프가 태스크들을 동시적으로(Concurrent, not Parallel) 실행한다고 설명하였다. 그런데 사실 asyncio.run() 함수는 기본적으로 하나의 태스크만을 생성하여 실행한다. 따라서 코루틴 체인 과정에서 추가적인 태스크를 생성하여 실행하지 않았다면 현재의 태스크가 중단되었을 때 이벤트 루프는 실행시킬 다른 태스크가 없게 된다. 태스크가 한 개라면 동시적인(Concurrent) 실행을 하는 것이 애초에 말이 되지 않는 것이다. ※ 여기서 말하는 동시 실행이란 Parallel이 아닌 Concurrent를 말한다. 즉, 엄밀한 의미의 동시가 아니라 여러 태스크들을 왔다 갔다 하며 한 쓰레드에서 실행하는 개념인 ..
[ async, await ] python 3.5에서는 coroutine을 명시적으로 지정하는 async와 yield를 대체하는 await keyword가 추가되었습니다. https://peps.python.org/pep-0492/ PEP 492 – Coroutines with async and await syntax | peps.python.org This proposal introduces new syntax and semantics to enhance coroutine support in Python. This specification presumes knowledge of the implementation of coroutines in Python (PEP 342 and PEP 380). Moti..
python 3.5부터 지원하는 asyncio는 비동기 프로그래밍을 위한 모듈입니다. asyncio는 async/await 구문을 사용하여 동시성 코드를 작성하는 라이브러리입니다. asyncio는 고성능 네트워크 및 웹 서버, 데이터베이스 연결 라이브러리, 분산 작업 큐 등을 제공하는 여러 파이썬 비동기 프레임워크의 기반으로 사용됩니다. https://docs.python.org/ko/3.8/library/asyncio.html asyncio — 비동기 I/O — Python 3.8.13 문서 docs.python.org asyncio를 이해하기 위해서는 아래 키워드들을 순차적으로 이해를 해야 더 확실히 알 수 있을 것 같아 정리하려 합니다. [ generator ] 제네레이터는 말그래도 값을 생성하는 ..