비동기
-
python - async def, asyncio개발 2023. 6. 3. 16:26
async def 비동기 함수를 정의하기 위한 파이썬 문법. async def 키워드를 사용하여 정의된 함수는 비동기적으로 실행될 수 있고 내부의 비동기 함수도 병렬로 실행할 수 있다 async def convert_int(a: str): await asyncio.sleep(1) return int(a) async def calc_add(str_a: str, str_b: str): now = datetime.now() int_a, int_b = await asyncio.gather(convert_int(str_a), convert_int(str_b)) print(datetime.now() - now) # 0:00:01.001219 return int_a + int_b loop = asyncio.get_e..
-
Blocking/Non-Blocking Sync/Async개발/컴퓨터사이언스 2023. 1. 26. 17:28
Blocking/Non-Blocking Blocking, Non-Blocking은 제어권을 처리하는 방법론이다. Blocking은 현재의 작업이 모두 끝난후에 다음 작업에게 제어권을 넘겨준다. 예를 들어 Blocking 방식으로 CPU가 I/O 작업을 처리한다면 CPU는 I/O 작업이 완료 될 때까지 다른 업무를 하지 않는다. Non Blocking은 이와 반대다. 현재 작업이 모두 끝나지 않더라도 다른 작업에게 제어권을 건네줄 수 있다. CPU가 I/O 작업을 모두 처리하지 않더라도 다른 작업에게 제어권을 넘겨준다면 Non-Blocking이다. Sync/Async 작업의 결과값을 신경 쓰느냐 쓰지 않느냐와 관련 있다. Sync는 호출된 함수의 결과를 호출한 함수가 신경 쓴다. 함수의 리턴 값이 필요한 ..