• 동기 : 동시에 일어나는
    • 요청과 결과가 동시에 일어난다.
    • 어떤 객체 또는 함수 내부에서 다른 함수를 호출했을 때, 함수의 결과를 호출한 쪽에서 처리
      • ex) C 언어의 scanf()
        사용자가 입력하면 그 결과를 자신이 처리
      • 대부분의 함수는 동기적 방식
    • 결과가 주어질 때까지 아무것도 못 하고 대기해야 한다.
  • 비동기 : 동시에 일어나지 않는
    • 요청과 결과가 동시에 일어나지 않는다.
    • 어떤 객체, 함수 내부에서 다른 함수를 호출했을 때, 함수의 결과를 호출한 쪽에서 처리하지 않음
      • ex) JS의 setTimeout()
        명시한 시간이 흐른 경우, setTimeout이 아니라 setTimeout 인자로 넘겨준 콜백함수를 통해 수행 결과를 처리
    • 결과가 주어지는데 시간이 걸리지만, 그 시간동안 다른 작업을 할 수 있다.
    • +)thread를 사용하면 asynchronous events를 효율적으로 처리할 수 있다.

 

  • blocking
    • 수행 결과가 끝날 때까지 제어권을 갖고 있는 경우
  • non-blocking
    • 수행 결과가 끝나지 않아도 제어권을 반납하는 경우

 

* 참고

victorydntmd.tistory.com/8

+ Recent posts