잡초의 일지

[Swift] GCD(Grand Central Dispatch), DispatchQueue, Concurrency(동시성) 본문

[코딩] 배우는것/Swift

[Swift] GCD(Grand Central Dispatch), DispatchQueue, Concurrency(동시성)

JabCho 2020. 11. 17. 18:14
728x90
반응형
SMALL

GCD

https://developer.apple.com/documentation/DISPATCH

 

Apple Developer Documentation

 

developer.apple.com

시스템에서 관리하는 디스패치 대기열에 작업을 제출하여 멀티코어 하드웨어에서 동시에 코드를 실행한다.

GCD는 FIFO이다.

GCD에서는 DispatchQueue를 사용한다.

DispatchQueue

1. Main Queue

- UI와 관련된 작업 (ex. UI 업데이트)

2. Global Queue

- 시스템에 의해 관리

- Queue의 우선순위인 QOS(Quality Of Service)가 4개로 나뉘어진다.

    1순위: userInteractive

    2순위: userInitiated

    3순위: default

    4순위: utility

    5순위: background

3. Custom Queue

4. Global Queue와 Main Queue의 복합적인 이용 예시

Sync Vs. Async

https://alicecodealice.tistory.com/158

 

[Swift] [SwiftUI] 2020 Stanford ios development course cs193p Lecture 7, 8 정리

woongsios.tistory.com/210?category=710017 GCD, Dispatch 개인적으로 공부하며 정리하는 블로그 입니다. 오류나 부족한 부분이 있을 수 있으니 감안하여 봐주시고 아낌없는 조언 감사드립니다 :D 흔히 GCD라고.

alicecodealice.tistory.com

Sync : 앞의 작업이 끝나면 다음 작업을 한다

Async : 상관없이 작업한다

위의 경우, 노란색 이모지의 우선순위가 높다.

이 상태에서 async를 사용한다면, 굳이 보라색 이모지가 다 출력되지 않아도 노란색 이모지가 먼저 출력되는것을 볼 수 있다. 

위의 경우에도 노란색 이모지의 우선순위가 더 높다.

하지만, sync를 사용하였기 때문에 보라색 이모지의 출력이 끝난 후에 노란색 이모지가 출력된다.

0123

우선순위가 같은 경우에도 다음과 같이 출력된다.

728x90
반응형
LIST
Comments