-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
NonBlocking IO와 코루틴 에 대한 질문이 있습니다.
22.06.23 13:09 작성 조회수 123
0
강의에서 (08:29) "서브와 메인이 서로 제어권을 주고받는 게 NonBlocking IO 이며, 타 함수는 작업을 지속한다" 라고 필기를 해주셨는데요.
여기서 의문이 생겼습니다.
서브와 메인이 서로 제어권을 주고받는 건 코루틴인데..
제가 코루틴을 이해하기로는 코루틴이 작업을 끝내기 전까지 다른 함수(메인)들이 그 작업을 기다리고 있는 것으로 알고있었습니다. 어떻게 코루틴이 작업을 하는동안 타 함수가 일을 지속할 수 있는지 이해가 잘 안됩니다.
제어권을 전달한다는 자체가 Blocking 작업이라는 거 아닌가요?
저는 오히려 코루틴은 Blocking 이고 스레드가 NonBlocking 이라고 이해가됩니다. 제가 틀린건가요?
답변을 작성해보세요.
0
좋은사람
지식공유자2022.06.23
안녕하세요.
보통 코루틴에서 제어권을 전달하는 과정보다는 io , http 관련 작업을 하느 부분이
non-block , block 등과 관련이 있다고 생각되네요!
말씀하신 부분도 관점에 따라 일리가 있어요.
아래 공식 레퍼런스 한 번 읽어보세요.
https://docs.python.org/3/library/asyncio-task.html#running-in-threads
답변 1