동기 (Sync)
synchronous: 동시에 일어나는(똑같이 진행되는), 같은 상태를 뜻함
현재 작업의 응답 과 다음작업의 요청 이 동시에 일어남
- 작업 흐름이 순차적으로 진행되는 것을 보장함
- 어떤 작업이 진행 중일 땐 다른 작업을 동시에 진행할 수 없음
- Last in First Out
비동기 (Async)
asynchronous
여러 작업을 동시에 할 수 있음
-> 현재 작업의 응답 과 다음작업의 요청 이 동시에 일어나지 않아도 된다.
동기 코드가 모두 실행되고 나서 비동기 코드 실행
GCD
- Serial Queue(작업을 순서대로 처리)
- DispatchQueue.main()
-- DispatchQueue.main.sync{} => 데드락
- Concurrent Queue(여러 작업을 스레드에 분산 배치후 동시에 처리)
- DispatchQueue.global()
동기(Synchronous)는 정확히 무엇을 의미하는걸까?