728x90
- 동기(synchronous) 처리
- 직렬적으로 태스크를 수행하는 방식이다.
- 요청 보내고 결과값을 받을 때까지 작업을 멈춤 한 가지씩 작업을 처리함
- 실제로 cpu가 느려지는 것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.
- 비동기(asynchronous) 처리
- 병렬적으로 태스크를 수행하는 방식이다.
- 요청 보내고 결과값을 받을 때까지 멈추지 않고 또 다른 일을 수행함
- 다양한 일을 한 번에 수행함
예를 들자면, 게임을 하면서 메모를 하거나 전화를 대화를 하는 등의 한 가지 작업중에 다른 작업을 하지 못하면 동기,
노래를 들으면서 밥을 먹거나 씻는행위를 할 수 있으면 비동기 라고 할 수 있다.
fun main() {
// 시작
//고용량 동영상 다운로드
//다른작업
}
이런 작업을 할 때, 동기적으로 처리한다고 하면, 영상이 다운로드가 될때 까지 다른작업은 할 수 없다.
그래서 Thread 나 Coroutine을 사용한 비동기 처리를 하는 것.
다운로드 요청을 하고 완료될때 까지 기다리는것이 아니라, 요청을 하고 다른 작업을 하다가 완료가 되면 다음 작업을 수행 할 수 있게한다.