Skip to content
Discussion options

You must be logged in to vote

Blocking / Non-Blocking을 검색해보면 Synchronous / Asynchronous 가 함께 등장한다.
이 용어들은 멀티 테스킹과 관련이 있어보여 비슷한 개념으로 오해할 수 있는데, 이번 기회에 차이점을 확실히 구분해보자.

(1) 관점
동기/비동기 : 요청 작업의 완료 여부를 신경씀, 작업을 순차적으로 수행할지 아닐지 에 대한 관점.
블록/논블록 : 현재 작업이 block 되느냐 아니냐에 따라 다른 작업을 수행할 수 있는지에 대한 관점.
뭔가 한번에 이해되지 않는 표현들이다, 각 개념들을 하나씩 뜯어 살펴보자.

(2) 동기/비동기
동기 Synchronous 의 영단어 뜻을 보면 Syn는 '함께' chrono는 '시간' 이라는 뜻이다.
즉, 작업 시간을 함께 맞춰서 실행한다 라는 뜻으로 해석된다.
이 말은 요청한 작업에 대해 완료 여부를 따지며 순차적으로 처리한다. 라고 할 수 있다..

비동기 Asynchronous 는 A가 붙어 부정하는 형태로 요청한 작업에 대해 완료 여부를 따지지 않으며 자신의 다음 작업을 그대로 수행한다.

성능 관련해서 동기의 경우 모든 작업이 순차적으로 진행되기 때문에 각 Task 가 걸리는 시간을 더한 만큼 총 작업 시간이 걸린다.
반면 비동기의 경우 두개 이상의 작업이 동시에 실행될 수 있으므로 성능 향상에 도움을 줄 수 있다.
또, a,b,c 라는 작업이 있을 때 동기의 경우 순서…

Replies: 2 comments 3 replies

Comment options

You must be logged in to vote
2 replies
@YuDeokRin
Comment options

YuDeokRin May 26, 2024
Maintainer Author

@Pracrobo
Comment options

Answer selected by YuDeokRin
Comment options

You must be logged in to vote
1 reply
@YuDeokRin
Comment options

YuDeokRin May 26, 2024
Maintainer Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4 participants