코린이 탈출기
동기 VS 비동기 본문
동기
동기는 메서드를 실행시킴과 동시에 반환 값이 기대되는 경우를 말합니다.
바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어진다는 것입니다.
즉, 요청과 결과가 한 자리에서 동시에 일어난다는 의미입니다.
좀 더 쉽게 표현하면 요청을 보내고 실행이 끝나면 다음 동작을 처리하는 방식을 말합니다.
예를 들면, 손님 응대와 같이 한 손님의 응대가 끝내야 다음 손님을 응대하는 것과 비슷합니다.
장점
- 순서에 맞춰 진행이 되어 제어하기가 쉽습니다.
- 설계가 간단하고 직관적입니다.
단점
- 여러 가지 요청을 동시에 처리할 수 없어 효율이 떨어집니다.
- 결과가 주어질 때까지 아무것도 못하고 대기해야 합니다.
비동기
동기와 반대로 메서드 실행과 반환 값이 동시에 기대되지 않는 경우를 말합니다.
즉, 요청과 결과가 그 자리에서 주어지지 않는 것입니다.
요청을 보내고 해당 동작의 처리 여부와 상관없니 다은 요청이 동작하는 방식입니다.
예를 들면, 한 사람에게 문자를 보냈을 때 답변을 기다리지 않고 다시 문자를 보낼 수 있는 경우와 비슷합니다.
장점
- 작업이 완료되는 시간을 기다릴 필요가 없기 때문에 자원을 효율적으로 사용할 수 있습니다. 다시 말해, 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있습니다.
단점
- 작업이 완료된 결과를 제어하기 어렵습니다.
- 동기보다는 복잡합니다.
'안드로이드 면접 질문 > CS 예상 질문' 카테고리의 다른 글
| 메모리 구조 (0) | 2022.05.24 |
|---|---|
| 프로세스(Process) vs 스레드(Thread) (0) | 2022.05.19 |
Comments