동기 (Synchronous)
- 작업을 다른 쓰레드에서 하도록 시킨다.
- 작업이 끝날때까지 기다린다.
비동기 (Asynchronous)
- 작업을 다른 쓰레드에서 하도록 시킨다.
- 작업이 끝날때까지 기다리지 않음
비동기 개념이 필요한 이유?
서버와의 통신(네트워크 작업) 때문
동기와 비동기는 각 쓰레드의 작업에 대한 요청을 하고, 작업이 끝날때까지 기다렸다가 응답할건지 아닌지에 대한 개념이다.
동기로 작업할 수 있고, 비동기로도 작업할 수 있다.
여기서, '어떤 방식으로 작업해도 상관없는데 대신 직렬(순서대로)/병렬(여러개로 분산) 로 처리해'로 작업 방식을 나눌 수 있다.
직렬 (Serial)
- 분산처리 시킨 작업을 다른 하나의 쓰레드로만 분산해서 처리한다.
- 작업에 순서가 필요할 경우 직렬 처리를 한다.
동시 (Concurrent)
- 분산처리 시킨 작업을 여러개의 쓰레드로 분산해서 처리한다.
- 각자 독립적이지만 유사한 여러개의 작업을 처리할 때 사용한다.
직렬과 동시는 작업들을 순차적으로 진행할 것인지 동시에 진행할 것인지에 대한 개념이다.
참고
동기, 비동기