비동기
동기적이지 않은 것(asynchronous)을 의미한다.
동기적이라는 건 작업들을 순차적으로 진행함을 의미하는데, 한 작업이 끝나기를 기다려야하는 속성이 있다. 반면에 비동기는 한 작업이 끝나기를 기다리지 않고 다른 작업을 진행하는 것을 말하며, 동기적이지 않은 모든 방식을 의미한다.
비동기 프로그래밍을 가능케하는 조건
- non-block IO - 요청을 block하는 작업이 아니기에 I/O를 기다리는 동안 다른 작업을 처리(async, non-block)할 수 있다.
- 멀티 스레딩 - 여러 작업을 각 스레드가 나누어 진행하기에 동기적이지 않다. block IO 작업이라도 비동기로 진행할 수 있다 예외
- async / blocking IO
- async로 동작하려하지만 제어권이 없기 때문에 메인 플로우를 진행시키지 못한다. sync 와 거의 같은 성능을 낸다.
refs
- 비동기 프로그래밍, 비동기 I/O, 비동기 커뮤니케이션.. 비동기(asynchronous)라는 .. 참 많이 사용하는데요~ 각 맥락에 따른 의미를 설명합니다~ 들러보세영~ㅎㅎ - YouTube
- 👩💻 완벽히 이해하는 동기/비동기 & 블로킹/논블로킹