본문 바로가기
iOS/iOS

동시성 프로그래밍 (3) - GCD/Operation에 앞서

by 패쓰킴 2024. 8. 9.
728x90

Synchronous(동기) vs. Asynchonous(비동기)

thread1 번에 쌓이는 task들을 대기열(큐)에 보내고 동기 또는 비동기로 처리할지 정하게 되고

대기열에 보내진 task들은 자동으로 다른 스레드들로 분산되어 동기 또는 비동기로 처리된다.

 

동기로 처리 하게 되면 하나의 task가 끝나고 다음 task를 실행하여 순차적으로 큐에 있는 작업들을 처리한다.

비동기로 처리 하게 되면 여러 task가 동시에 큐에 있는 작업들을 처리한다. 

 

Serial(직렬) VS Concurrency(동시)

이러한 큐에는 두 가지의 특성이 있는데 바로 직렬과 동시

 

직렬?

스레드 하나에 작업을 보내고 순서가 중요한 작업을 처리할 때 사용된다.

 

동시?

여러 스레드를 사용하여 작업을 처리하며 몇 개의 스레드로 분산할지는 시스템이 결정하게 된다.

각자 독립적이지만 유사한 여러 개의 작업을 처리할 때 사용하는데 예를 들어, 테이블 뷰의 셀에 이미지를 다운로드 받는 작업들을 동시에 진행하여 빠르게 셀을 완성하고자 할 때 사용하게 된다. 

 


 

이처럼 앞서 작성했던 게시물 '동시성 프로그래밍 1,2'를 이어 보면 비동기와 동시는 엄연히 다른 말이므로 혼동해서는 안되겠다.

 

 

iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션

앨런(Allen) | 동시성(Concurrency)프로그래밍 - iOS프로그래밍에서 필요한 동기, 비동기의 개념 및 그를 확장한 GCD 및 Operation에 관한 모든 내용을 다룹니다., ✍️ 강의 제작 동기 '왜 동기vs비동기 개

www.inflearn.com

 

 

728x90

댓글