본문 바로가기

Computer Science/운영체제

[날카로운 질문하는 머쓱이] 동기 방식과 비동기 방식

반응형
SMALL

분명 동기와 비동기를 공부했었고, 머릿속으로는 알고 있는데 바로 글을 쓰기에는 어려웠다. 갑자기 질문이 나와도 대답할 수 있도록 반복적으로 공부해야겠다고 생각했다.

 

동기 (Synchronous)

작업 요청한 후, 작업의 결과가 나올 때까지 기다린 후 처리하는 방식이다.

특정 입출력 작업을 하기 위한 준비가 되었는지에 집중하고, 이벤트가 발생하면 그에 따른 적합한 처리를 한다.

 

- 순차적으로 처리하면서 내려간다.

- 비동기 방식에 비해 결과 값이 느리다.

- 디버깅이 쉽다.

 

A함수가 B함수를 호출할 때, B함수의 결과를 A함수가 처리한다.

 

비동기 (Asynchronous)

작업 요청 후 다른 작업을 하다가 해당 작업이 완료되면 그에 따른 작업을 처리하는 방식이다.

 

A함수가 B함수를 호출할 때, B함수의 결과를 B함수가 처리한다.

 

- 여러 로직이 동시에 처리된다.

- 동기 방식에 비해 결과 값이 매우 빠르게 나타난다.

- 다른 프로세스의 값을 사용할 때, 이를 잘 조절해야 한다.

 

 

 

요약! 동기와 비동기 방식의 차이는 작업을 처리하는 시각에서 있다. 동기 방식은 요청한 작업이 완료될 때까지 대기 후 해당 결과를 처리하고, 비동기 방식은 요청한 작업이 완료될 때까지 다른 작업을 수행하다가 해당 결과를 처리한다.

예를 들어, 주문 받은 커피가 나올 때까지 다른 주문을 받지 않는 것이 동기적인 방식이고, 주문 받은 커피가 나올 때까지 다른 주문을 받다가 커피가 나오면 손님에게 커피를 주는 것이 비동기적인 방식이라고 할 수 있다.

 

 

References

https://gocoder.tistory.com/1421

https://koras02.tistory.com/87

반응형
LIST