πλμμ±κ³Ό λ³λ ¬μ±μ΄λ?
λμμ±κ³Ό λ³λ ¬μ±μ μ°¨μ΄κ° μλ κ²μ²λΌ λ³΄μΌ μλ μμ§λ§, μ΄λ μ§λ¬Έμ λ³Έμ§μ μ΄ν΄νμ§ λͺ»νκΈ° λλ¬Έμ λλ€. κ·Έλ€μ΄ μ΄λ»κ² λ€λ₯Έμ§ μ΄ν΄νλ €κ³ λ Έλ ₯ν©μλ€.
λμμ±(Concurrency)
λμμ±μ μ μ΄λ λ κ°μ μ€λ λκ° μ§ν μ€μΌ λ μ‘΄μ¬νλ 쑰건μ΄λ©°, κ°μ λ³λ ¬ μ²λ¦¬μ ν ννλ‘ μκ° λΆν (time-slicing)μ ν¬ν¨νλ€. μ°λ¦¬κ° νν ‘λμ’λΌκ³ μ΄μΌκΈ° νμ§λ§ μ»΄ν¨ν°(μ½μ΄)λ νλ²μ νλμ λͺ λ Ήμ΄λ§ μ²λ¦¬ν μ μλ€. μ¦, λκ° μ΄μμ μκ³ λ¦¬μ¦μ΄ νλμ μ½μ΄λ΄μμ μ€λ λκ°μ λΉ λ₯΄κ² κ΅μ°¨λλ©΄μ μ€νλκΈ° λλ¬Έμ ‘λμ’λΌκ³ λλΌλ κ²μ΄λ€.
μμ κ·Έλ¦Όμ μ±κΈ μ½μ΄λ΄μμ λ€μ€μ€λ λλ€μ΄ μ€νλλ λμμ±μ λνλ΄κ³ μλ€. μ°Έκ³ λ‘ Thread Aμ Thread Bκ° κ΅μ°¨λλ©° μ€νλλ λΆλΆμ Context Switching(λ¬Έλ§₯κ΅ν)μ΄λΌκ³ νλ€.
νμ¬μμ μλ‘ λ€μ΄λ³ΌκΉμ? νμ¬μμ μ νλ₯Ό λ°κ±°λ μ 무λ₯Ό μ§νν©λλ€. μ νλ₯Ό λ°μΌλ©΄ μ λ¬΄κ° μ€λ¨λκ³ , μ νκ° λλμΌ μ 무λ₯Ό μ¬κ°νμ£ . ν΄κ·Ό μ κΉμ§ μ΄λ¬ν κ³Όμ μ΄ λ°λ³΅λ©λλ€.
λ³λ ¬μ±(Parallelism)
λ³λ ¬μ±μ μμ μ΄ λμμ λ³λ ¬μ μΌλ‘ μ€νλλ€λ κ²μ λλ€. λ³λ ¬μ±μ μ΄μΌκΈ°νλ €λ©΄ μ μ΄λ 2κ° μ΄μμ μ½μ΄κ° μμ΄μΌ νλ€. λ³λ ¬μ±λ λμμ±μ μλ―Ένμ§λ§ λμμ±κ³Όμ μ°¨μ΄λ κ° μ½μ΄λ΄μ μ€λ λκ° μ€μ λ‘ λμμ λͺ λ Ήμ΄λ₯Ό μ€νν μ μμμ λ§νλ€. κ·Έλ¬λ―λ‘ λκ°μ μκ³ λ¦¬μ¦μ΄ μ νν κ°μ μμ μ μ€νλ λ μ΄λ₯Ό λ³λ ¬μ μ΄λΌκ³ λ§ν μ μλ€.
μ, μ¬λ¬΄μ€λ‘ λμκ°λ΄ μλ€. μ΄μ νμ¬μμ΄ λ λͺ μ΄ λμμ΅λλ€. ν λͺ μ μ νλ₯Ό λ°κ³ λ€λ₯Έ ν λͺ μ μ 무λ₯Ό μ§νν©λλ€. μ΄λ κ² νμ¬μμ΄ 2λͺ λ°°μΉλμ΄ μ ν λ°κΈ°μ μ 무 μ§νμ λ³νν μ μμ΅λλ€.
μ 리νμλ©΄ λ³λ ¬μ±μ λμμ±μ νμ μ νμ λλ€. μ¬λ¬ μμ μ λμμ μννκΈ° μν΄μλ λ³λ ¬ μμ μ μ¬λ°λ₯΄κ² ꡬμ±ν΄μΌ νμ£ .
μ 리
λμμ±μ΄λ
- μ±κΈ μ½μ΄μμ λ©ν° μ€λ λλ₯Ό λμμν€κΈ° μν λ°©μμΌλ‘, λ©ν° νμ€νΉμ μν΄ μ¬λ¬ κ°μ μ€λ λκ° λ²κ°μκ°λ©΄μ μ€νλλ μ±μ§μ λ§νλ€.
λ³λ ¬μ±μ΄λ
- λ©ν° μ½μ΄μμ λ©ν° μ€λ λλ₯Ό λμμν€λ λ°©μμΌλ‘, ν κ° μ΄μμ μ€λ λλ₯Ό ν¬ν¨νλ κ° μ½μ΄λ€μ΄ λμμ μ€νλλ μ±μ§μ λ§νλ€.
μ°Έκ³
https://luminousmen.com/post/concurrency-and-parallelism-are-different
https://www.charlezz.com/?p=44646
'SERVER > Node.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Block IO vs Non-Block IO & Sync vs Async (0) | 2022.06.28 |
---|---|
π» webRTC Process (0) | 2022.06.22 |
πObserver Patternμ΄λ? (0) | 2022.05.11 |
SOA, MSA μν€ν μ²λ? (0) | 2022.05.10 |
π» μΉ μλΉμ€ μ±λ₯ μ¬λ¦¬κΈ°(μ²λ¦¬λ, μλ΅μκ°) (0) | 2022.04.24 |