π΄ Context Switch
- μ¬μ μ μ μ : CPUκ° νμ¬ μμ μ€μΈ νλ‘μΈμ€μμ λ€λ₯Έ νλ‘μΈμ€λ‘ λμ΄κ° λ μ§κΈκΉμ§μ νλ‘μΈμ€μ μνλ₯Ό μ μ₯νκ³ , μ νλ‘μΈμ€μ μ μ₯λ μνλ₯Ό λ€μ μ μ¬νλ μμ μ Context Switch(λ¬Έλ§₯ κ΅ν)μ΄λΌ νλ€.
μ±κΈ thread μΌ λ cpuκ° 3κ°μ νλ‘κ·Έλ¨μ μ€ννκ³ μλ€κ³ νλ©΄, μμ£Ό μ κΉλμ 1κ°λ₯Ό μ€ννκ³ , λ©μΆκ³ , λ€λ₯Έ 1κ°λ₯Ό μ€ννκ³ λ©μΆκ³ λ₯Ό νλ€λ³΄λ©΄ μ¬λμ λμλ 3κ°μ νλ‘κ·Έλ¨μ΄ λμμ λμκ°λ κ²μ²λΌ 보μ΄κ² λ§λ€μ΄ μ£Όλ κΈ°λ₯μ΄λ€.
π£ async μ parallel => concurrency
μ¬λ¬ μμ μ λμμ μ²λ¦¬νλ λ°©λ²μΌλ‘, μ΄ λ κ°μ§ κ°λ μ μλ‘ λ€λ₯Έ λͺ©μ κ³Ό κΈ°λ²μ μ¬μ©νμ§λ§ λμμ±μ μ€ννλ€λ 곡ν΅μ μ΄ μλ€.
π Async Programming
- λΉλκΈ° νλ‘κ·Έλλ°
μμ μ λ 립μ μΌλ‘ μ€ννκ³ , ν΄λΉ μμ μ΄ μλ£λλ κ²μ κΈ°λ€λ¦¬μ§ μκ³ , λ€μ μμ μΌλ‘ μ§νν μ μλ λ°©μ.
I/O μμ
, λ€νΈμν¬ ν΅μ , μ¬μ©μ μΈν°νμ΄μ€μ κ°μ΄ λκΈ° μκ°μ΄ κΈΈκ±°λ κ²°κ³Όλ₯Ό μ¦μ μ»μ μ μλ κ²½μ°μ μ¬μ©νλ€.
μ΄ κ²½μ°, μμ
μλ£λ₯Ό κΈ°λ€λ¦¬λ λμ λ€λ₯Έ μμ
μ κ³μ μ²λ¦¬κ° κ°λ₯ν΄μ§κΈ°μ μ 체 νλ‘κ·Έλμ μ±λ₯μ΄ ν₯μλλ€.
νλ‘κ·Έλ¨μ μ€ν νλ¦μ μ°¨λ¨νμ§ μκ³ μμ
μ λ°±κ·ΈλΌμ΄λμμ μννλ€.
jsμμ promise, νμ΄μ¬μμ asyncio λΌμ΄λΈλ¬λ¦¬ κ° μλ€.
π‘ Parallel Programming
- λ³λ ¬ νλ‘κ·Έλλ°
μ¬λ¬κ°μ νλ‘μΈμ€ λλ μ€λ λλ₯Ό μ¬μ©νμ¬ μ¬λ¬ μμ
μ μννλ λ°©μμ΄λ€.
μμ
μ΄ λ
립μ μΌλ‘ μνλ μ μκ³ , μλ‘ κ°μνμ§ μλ κ²½μ°μ μ ν©νλ€.
Aμ B λΌλ μμ μ΄ μμ λ, μ΄λ€ μμλ‘ execute λλ μ§ λͺ¨λ₯΄κΈ°μ, λ²κ·Έμλ μ½λ μ§κΈ°κ° νλ€κ³ , λλ²κ·Έλ νλ€μ΄μ§λ€.
π’ μ°¨μ΄μ
λΉλκΈ° νλ‘κ·Έλλ°μ νλ‘κ·Έλ¨μ λ°μμ± ν₯μμ, λ³λ ¬ νλ‘κ·Έλλ°μ νλ‘κ·Έλ¨μ μ€ν μκ° λ¨μΆ λ° λ¦¬μμ€ μ΅μ νλ₯Ό λͺ©νλ‘ νλ€.
λΉλκΈ° νλ‘κ·Έλλ°μ μμ μ λ 립μ μΈ μ€νμ κ΄λ¦¬, λ³λ ¬ νλ‘κ·Έλλ°μ μμ μ λμμ μ€ν.
/ | λΉλκΈ° | λ³λ ¬ |
λͺ©μ | νλ‘κ·Έλ¨ λ°μμ± ν₯μ | νλ‘κ·Έλ¨ μ€ν μκ° λ¨μΆ / 리μμ€ μ΅μ ν |
λμμ± | μμ μ λ 립μ μΈ μ€ν | μμ μ λμμ μ€ν |
μμ νμ© | λ¨μΌ νλ‘μΈμ λ° μ½μ΄μμ μ΅μ ν | μ¬λ¬ νλ‘μΈμ λ° μ½μ΄μ λΆμ° λ° μ€ν |
π€ κ²°λ‘
λ³λ ¬ νλ‘κ·Έλλ°μ νλ‘κ·Έλ¨ μ±λ₯μ μΈ μΈ‘λ©΄μμ μ’μ μ μμΌλ, κ°λ°μμκ² νλ€μ΄μ§λ€. νΌν μ μμΌλ©΄ νΌνλ κ² μ’μ§λ§
λ³λ ¬ νλ‘κ·Έλλ°μ΄ κΌ νμν μκ°λ μλ€.