의문점 공부하기/🧾공부하며

🧾동기, 비동기의 차이에 대해

아리빠 2023. 11. 13. 21:23

일반적으로 동기와 비동기의 차이는 메소드를 실행시킴과 동시에 반환 값이 기대되는 경우를 동기 라고 표현하고 그렇지 않은 경우에 대해서 비동기 라고 표현한다.

동시에라는 말은 실행되었을 때 값이 반환되기 전까지는 blocking되어 있다는 것을 의미한다. 비동기의 경우, blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task 를 위임하고 바로 다음 코드를 실행하기 때문에 기대되는 값이 바로 반환되지 않는다.

 

-예시

해야할 일(task)가 빨래, 설거지, 청소 세 가지가 있다고 가정한다.

이 일들을 동기적으로 처리한다면 빨래를 하고 설거지를 하고 청소를 한다.

비동기적으로 일을 처리한다면 빨래하는 업체에게 빨래를 시킨다. 설거지 대행 업체에 설거지를 시킨다. 청소 대행 업체에 청소를 시킨다. 셋 중 어떤 것이 먼저 완료될지는 알 수 없다. 일을 모두 마친 업체는 나에게 알려주기로 했으니 나는 다른 작업을 할 수 있다. 이 때는 백그라운드 스레드에서 해당 작업을 처리하는 경우의 비동기를 의미한다.

'의문점 공부하기 > 🧾공부하며' 카테고리의 다른 글

🧾면접 대비  (0) 2023.12.02
🧾NCA 취득 완료  (0) 2023.11.30
🧾웹 통신의 큰 흐름에 대하여  (0) 2023.11.09
🧾JPA2  (2) 2023.11.06
🧾 MVC  (0) 2023.11.05