동기 vs 비동기
직렬 vs 병렬
동기 : 하나의 작업을 지시하고 완료될 때 까지 다음 작업을 진행하지 않음
비동기 : 어떤 것이 먼저 완료될지 모르지만 여러 작업을 지시함
동시성 프로그래밍이 필요한 이유!! : 여러 작업을 한개의 쓰레에 동작시키기 떄문에 스크롤 또는 많은 버벅임이 있을수 있다!!
방법 : 작업(Task)를 "대기행렬(Queue)"에 보내기만 하면 된다 그럼 iOS에서 분산 처리 한다.
우리가 할일 : 작업(Task)를 Queue로 보내는 것이다!!
직접적으로 쓰레드를 관리하지 않고 "큐"(Queue) -(대기열/대기행렬) 이라는 개념을 이용해 작업을 분산처리
우리는 Queue만 만들고 그안에 작업(Task) 넣기만 하면 iOS가 쓰레드을 생성해서 넣는다.
대기열로 보내는 방법(Code)
//큐에 보낸다 글로벌 큐에 비동기 적으로
DispatchQueue.global().async {
//Task(1) 작업의 한 단위
}
인프런 - iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해