-
[프로그래밍] 동기, 비동기에 대하여프로그래밍 공부 2022. 6. 6. 01:38
안녕하세요~ 코딩하는 코알못 코메인입니다.
데이터를 처리하는 방식인 동기와 비동기에대해서 알아보자.
동기(Synchronous)
데이터의 처리가 순서대로 진행되며, 이전 데이터의 처리가 끝난 다음에서야 다음 처리를 할 수 있다.
비동기(ASynchronous)
데이터의 처리 순서는 지정 한 순서대로 시작하지만, 먼저 시작한 데이터의 처리가 끝나지 않아도 수행한다.
이런 방식으로 여러 데이터의 처리가 동시 다발 적으로 진행 할 수 있다.(시작과 종료가 다 다르고, 다양하게 처리된다.)
이렇게 글만 봐도 이해하기 힘 들 것이다. 그러니 알 기 쉽게 예를 들어보자.
동기 예
베스킨라빈스에 직원이 한명 밖에 없을때, 손님이 주문을 하면 주문을 받고 아이스크림을 퍼서 손님에게 전달 해 줄때까지 다음 손님의 주문을 받지 않는다. 그리고 앞 손님에게 아이스크림을 전달 해주면 이제 다음 손님의 주문이 시작된다.
이렇게 앞손님의 모든 처리가 끝나야 다음 손님의 처리를 시작하는 것이 동기식 프로그래밍인 것이다.
비동기 예
베스킨라빈스에 키오스크가 들어왔다. 손님들은 들어 온 순서대로 주문을 시작한다. 이렇게 되면 앞 손님의 처리가 시작만 하고, 끝나지 않아도 다음 손님의 처리도 시작하는 것이다.
기본적으로 먼저 주문한 손님의 처리의 끝을 먼저 하겠지만, 케잌이나 완성된 제품을 주문 한 사람은 먼저 줄 수도 있을 것이다. 이렇게 처리가 먼저 끝나는 손님은 앞 손님보다 처리의 종료 시간이 더 빠른 것이다.
이렇게 동기와 다르게 앞 손님의 처리가 끝나지 않아도 다음 손님의 처리가 시작 될 수 있고, 처리 종료까지의 시간이 앞 손님보다 짧으면 더 빨리 종료될 수 있는 것이다.
이해가 되었으면 좋겠습니다. 크게 어렵지 않은 내용이지만, 처음 접하는 사람에게는 충분히 이해하기 어려울 수 있습니다. 저도 이 내용을 스레드와 연관시켜 생각하게 되다보니 더 이해하기 힘들었었죠...
모두 열공 하시고, 저도 공부하고 있는 사람의 입장이라 보시고, 내용에 틀린 점이 있다면 댓글로 말해주세요. 감사한 마음으로 참고 수정 하겠습니다.
'프로그래밍 공부' 카테고리의 다른 글
[프로그래밍] JSON이란? (0) 2022.06.19