Bibi's DevLog π€π
Sync, Async / Serial, Concurrent λ³Έλ¬Έ
Sync, Async / Serial, Concurrent
Sync : synchronous (λκΈ°)
: λμ λ°μνλ.
- μλ―Έ : "μμ²μ λν μλ΅"μ΄ λμμ λ°μνλ.
- μ¦ λ΄ μμ μ΄ λλκΈ° μ κΉμ§ λ€λ₯Έ μμ μ μννμ§ μλλ€λ μλ―Έ = "μμ°¨μ "
- νμμ λΉλκΈ° μμ μμ΄ νλ μ½λ©μ΄ λκΈ° λ°©μμΌλ‘ μ΄λ£¨μ΄μ§.
- λκ·λͺ¨μ μμ μ λκΈ°λ‘ μ²λ¦¬νλ©΄ μμ μλ μ ν - λΉλκΈ°λ‘ μ²λ¦¬ν΄μΌ ν¨
Async : asynchronous (λΉλκΈ°)
: λμμ λ°μνμ§ μλ.
- μλ―Έ : "μμ²μ λν μλ΅"μ΄ λμμ λ°μνμ§ μλλ€.
- μ¦ λ΄ μμ μ΄ λλκΈ° μ μ λ€λ₯Έ μμ μ μνν μ μλ€λ μλ―Έ = "λμμ "
- λΉλκΈ°λ‘ μ²λ¦¬ν μμ
μ λ€μ μμ
κ³Ό λμμ μ€νλλ€
- μ¬λ¬ μμ μ λμμ μ²λ¦¬ κ°λ₯ - μμ μλ μμΉ
- μ½λ°± ν¨μ : λΉλκΈ° μμ μ μμ²μ λν μλ΅μ΄ λμ€μ μ€κΈ° λλ¬Έμ, λμ€μ ν΄μΌ ν μμ λ€μ μ½λ°±ν¨μλ‘ μ²λ¦¬ν¨
Serial
: μμ°¨μ μΈ.
- μλ―Έ : μμ°¨μ μΈ. μ°μμ μΈ.
- iOS) GCDμμ serial queue λ
Main queue
λ±μΌλ‘ μ¬μ©ν¨.- λ΄
Queue
μ λ€μ΄μ¨ μμ λ€μ μμ°¨μ μΌλ‘(Serial
) μ€νμν€κ² λ€. - Main Queueκ°
SerialQueue
μ ν΄λΉν¨
- λ΄
- βοΈserial queueλ ν λ²μ νλμ μμ λ§ μ€νμν¬ μ μμ
- serial queue λ μ£Όλ‘ μμ μ λκΈ°νν λ μ¬μ©ν¨
Concurrent
: λμμ λ°μνλ.
μλ―Έ : λμμ μΈ. λμμ λ°μμν€λ.
iOS) GCDμμ concurrent queueλ
DispatchQueue
λ±μΌλ‘ μ¬μ©ν¨- λ΄
Queue
μ λ€μ΄μ¨ μμ λ€μ λμμ μΌλ‘(concurrent) μ€νμν€κ² λ€.
- λ΄
βοΈconcurrent queue λ ν λ²μ μ¬λ¬ μμ μ λμμ μ€νμν¬ μ μμ
concurrent queue λ μ£Όλ‘ μμ μ μνν λ μ¬μ©ν¨
Sync != Serial, Async != Concurrent μ΄λ€!
λμ μμ°ν λ€λ₯Έ κ°λ !
- Sync, Async λ "λ¨μΌ μμ
"μ λν΄ μμ² ν κ²°κ³Όλ₯Ό κΈ°λ€λ¦΄μ§ λ§μ§μ λν κ΄μ μ΄κ³ ,
- λ¨μΌ μμ μ μμ²μ λν μλ΅μ κΈ°λ€λ¦΄μ§(sync) λ§μ§(async)
- Serial, Concurrent λ "μ¬λ¬ μμ
"μ λν΄ μ μμ
κ³Ό λ· μμ
μ μ΄λ»κ² μ€νν μ§μ λν κ΄μ μ΄λ€.
- μ μμ κ³Ό λ· μμ μ μμ°¨μ μΌλ‘ μ€νν μ§(serial) λμ μ€νν μ§(concurrent)