Swift
비동기 프로그래밍
Lyla.
2023. 5. 14. 08:55
1) 비동기 처리는 왜 필요할까?
: 메모리 순차적으로 실행될 필요가 없는 작업
쓰레드 : CPU의 손, 주방 화구에 불을 올림 (작업을 실행함)
여러 스레드에서 처리 하는 것: 동시적 처리 (concurrency)
2) 비동기와 동시의 개념
| 동기(Sync) | 비동기(Async) | |
| 기준 | 일이 끝나는 것을 기다리는가 / 기다리지 않는가? | |
| 작업의 종료에는 관심이 없다. | ||
| 실행중인 작업의 종료 | 기다린다 | 기다리지 않는다 |
| 코드 | DispatchQueue.global.sync{ } | DispatchQueue.global.async{ } |
| 직렬 | 동시(비동기 처리) | |
| 기준 | 여러 스레드를 쓰는가? / Queue의 작업 처리 방식 | |
| 스레드 사용 개수 | 1개의 스레드 사용 | 여러개의 스레드 사용 |
| 일의 성격 | 일을 순차적으로 실행 | 여러개의 메모리를 동시에 돌림 |
| 작업의 성격 | 순서가 중요한 작업 | 독립적 작업 |
| 코드 | DispatchQueue(label:[큐이름]) | DispatchQueue.global() |
:작업을 처리할 큐가 동시에 스레드를 여러개 쓰는가?