매번 헷깔리는 동기(Synchronous)와 비동기(Asynchronous)
동기(Synchronous) 방식
동기 방식은 서버에서 요청을 보냈을때 응답이 돌아와야 다음 동작을 수행할 수 있다.
- A작업이 모두 진행 될때까지 B작업은 대기해야한다.
- 요청을 보낸 후 응답(=결과)를 받아야지만 다음 동작이 이루어진다.
- 어떠한 일을 처리할 동안 다른 프로그램은 정지한다.
- 실제 cpu가 느려지는것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.
결론은 다 같은말이다. 즉, Synchronous(동시발생)의 정확한 의미는 정확히 같은 시간에 발생, 존재하는 것 이다. 그러므로 현재 작업의 응답과 다음 작업의 요청이라고 설명할수 있다.
비동기(Asynchronous) 방식
동기방식과 반대. 즉, 현재 작업의 응답과 다음 작업의 요청의 타이밍이 일치하지않는다.
동기방식은 상위프로세스가 하위 프로세스에게 작업을 지시할 때 작업의 종료시점을 알고 있어야한다. 하위 프로세스의 작업이 완료되어 결과물을 뱉어내든 혹은 작업이 아직 진행 중이든 작업의 종료 시점은 항상 작업을 시킨 놈인 상위 프로세스가 신경쓰고있다.
하지만, 비동기 방식은 상위 프로세스는 작업을 일단 지시했으면 그 다음부터는 작업이 진행 중이든 종료가되든 신경쓰지 않는다.
이렇기 때문에 작업의 종료순서가 순차적으로 이루어지는 것을 보장하지 않는다.
"참고"