sync(동기) & async(비동기) 차이 정리

반응형
반응형

 

동기(synchronous)와 비동기(asynchronous)는 컴퓨터 프로그램에서 다른 작업과의 상호작용 방식을 나타냅니다.

 

 

이 둘의 차이점은 작업이 수행되는 방식과 결과가 반환되는 시점에서 나타납니다.

  • 동기(synchronous): 작업이 실행될 때, 해당 작업이 완료될 때까지 기다립니다. 즉, 해당 작업이 끝나기 전까지는 다른 작업을 수행하지 않습니다. 이 작업이 완료된 후에는 결과가 반환됩니다.
  • 비동기(asynchronous): 작업이 실행되고 완료되는 동안 다른 작업을 수행할 수 있습니다. 즉, 해당 작업이 완료되지 않았더라도 다른 작업을 수행할 수 있습니다. 결과는 작업이 완료될 때 반환됩니다.

간단한 예를 들어보면, 파일을 읽는 작업을 수행하는 경우입니다.

  • 동기(synchronous) 방식에서는 파일을 읽는 작업을 수행하기 위해 해당 작업이 완료될 때까지 기다립니다. 그리고나서 결과를 반환합니다.
  • 비동기(asynchronous) 방식에서는 파일을 읽는 작업을 시작한 후, 해당 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행합니다. 그리고 해당 작업이 완료되면, 결과를 반환합니다.

 

이와 같은 차이점은 다중 스레드 또는 이벤트 기반 프로그래밍 등에서 더욱 중요해집니다.

동기 방식에서는 작업이 완료될 때까지 다른 작업을 수행하지 않기 때문에 다른 작업에 차단(blocking)될 수 있습니다.

 

반면에 비동기 방식에서는 작업이 완료될 때까지 다른 작업을 수행하고,

결과가 반환되면 해당 작업에 대한 콜백(callback) 함수를 호출하여 결과를 처리할 수 있습니다.

이를 통해 프로그램의 성능을 향상시킬 수 있습니다.

반응형

댓글

Designed by JB FACTORY

loading