728x90
  • 동기(synchronous) 처리
    • 직렬적으로 태스크를 수행하는 방식이다.
    • 요청 보내고 결과값을 받을 때까지 작업을 멈춤 한 가지씩 작업을 처리함
    • 실제로 cpu가 느려지는 것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.
  • 비동기(asynchronous) 처리
    • 병렬적으로 태스크를 수행하는 방식이다.
    • 요청 보내고 결과값을 받을 때까지 멈추지 않고 또 다른 일을 수행함
    • 다양한 일을 한 번에 수행함

예를 들자면, 게임을 하면서 메모를 하거나 전화를 대화를 하는 등의 한 가지 작업중에 다른 작업을 하지 못하면 동기,

노래를 들으면서 밥을 먹거나 씻는행위를 할 수 있으면 비동기 라고 할 수 있다. 

 

fun main() {
    // 시작
    
    //고용량 동영상 다운로드
    
    //다른작업
}

이런 작업을 할 때, 동기적으로 처리한다고 하면, 영상이 다운로드가 될때 까지 다른작업은 할 수 없다. 

 

그래서 ThreadCoroutine을 사용한 비동기 처리를 하는 것.

다운로드 요청을 하고 완료될때 까지 기다리는것이 아니라, 요청을 하고 다른 작업을 하다가 완료가 되면 다음 작업을 수행 할 수 있게한다. 

 

 

 

 

+ Recent posts