[iOS]Dispatch Queue
Dispatch
Execute code concurrently on multicore hardware by submitting work to dispatch queues managed by the system.
๐์์คํ ์์ ๊ด๋ฆฌํ๋ ๋์คํจ์น ํ์๊ฒ work๋ฅผ ์ ์ถํ์ฌ, ๋ฉํฐ์ฝ์ด ํ๋์จ์ด์์ ์ฝ๋๋ฅผ ๋์์ ์ผ๋ก ์คํํ๋ ๊ฒ์ด๋ค.
๐GCD์์ Distpatch Queue๋ฅผ ์ ๊ณตํด์ฃผ์ด ์์ ํ ๋ฉํฐ ์ค๋ ๋ฉ์ด ๊ฐ๋ฅ
Queue (ํ)โ
์ปดํจํฐ์ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ก, FIFO(First In First Out)๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
โ๏ธmain(serial)
main ์ค๋ ๋์์ ์ฒ๋ฆฌ๋๋ serial ํ
ํ๋์ ์์ ์ด ๋๋์ผ ๋ ๋ค๋ฅธ ์์ ์ ์์ํ๋ ์ง๋ ฌ ๊ตฌ์กฐ
โ๏ธglobal(concurrent)
๋ฉํฐ ์ค๋ ๋ฉ์ผ๋ก ์ ์ฒด ์์คํ ์ ๊ณต์ ๋๋ concurrent ํ
๋์์ ์ฌ๋ฌ ์์ ์ ํ๋ ๋ณ๋ ฌ ๊ตฌ์กฐ
class func global(qos: DispatchQoS.QoSClass = .default) -> DispatchQueue
ํ๋ผ๋ฏธํฐ๋ qosโ๏ธQoS (Quality of Service)๋ DispatchQueue์์ ์ํ ํ ์์ ์ ๋ถ๋ฅํ์ฌ ์ค์๋์ ์ฐ์ ์์์ ๋ฐ๋ผ์ User-interactive, User-initiated, Utility, Background ๋ค๊ฐ๋ก ๊ตฌ๋ถ๋๋ค