[νμ΄μ¬] μ½κ² μ€λͺ ν Process vs Thread
μλ³Έ κ²μκΈ: https://velog.io/@euisuk-chung/νμ΄μ¬-Process-vs-Thread
νλ‘μΈμ€(Process)λ?
μ»΄ν¨ν°μμ νλ‘κ·Έλ¨μ΄ μ€νλκ³ μμ λ, κ·Έ μ€ν μ€μΈ νλ‘κ·Έλ¨μ νλ‘μΈμ€λΌκ³ ν©λλ€. μλ₯Ό λ€μ΄, μΈν°λ· λΈλΌμ°μ λ₯Ό μ΄λ©΄ νλμ νλ‘μΈμ€κ° μ€νλκ³ , μλ νλ‘μΈμ(λ¬Έμ μμ± νλ‘κ·Έλ¨)λ₯Ό μ΄λ©΄ λ λ€λ₯Έ νλ‘μΈμ€κ° μ€νλλ κ²μ΄μ£ . κ° νλ‘μΈμ€λ μμ λ§μ λ 립λ 곡κ°μ κ°μ§λ©°, λ€λ₯Έ νλ‘μΈμ€μλ λ 립μ μΌλ‘ μ΄μλ©λλ€.
μλ₯Ό λ€μ΄, κ³ λ±νκ΅ κ°μμ κ΅μ€μμ 곡λΆνκ³ μλ νμλ€μ μκ°ν΄λ³΄μ£ . μ΄λ νλμ λ°μ νλμ νλ‘μΈμ€λΌκ³ λΉμ ν΄λ³Ό μ μμ κ² κ°μ΅λλ€.
μΆμ²: λ무μν€ μΌκ°μμ¨νμ΅
μ€λ λ(Thread)λ?
μ€λ λλ νλ‘μΈμ€ μμμ μΌμ μ²λ¦¬νλ λ μμ λ¨μμ λλ€. νλμ νλ‘μΈμ€λ μ¬λ¬ κ°μ μ€λ λλ₯Ό κ°μ§ μ μμ΄μ.
μμ μμμ μ΄μ΄μ μ€λͺ ν΄λ³΄μλ©΄, μ΄λ λ§μΉ ν λ°©μμ μ¬λ¬ λͺ μ νμμ΄ κ°μ λ€λ₯Έ κ³Όμ λ₯Ό νκ³ μλ μν©κ³Ό λΉμ·ν©λλ€. κ°μ λ°(νλ‘μΈμ€)μ νμλ€(μ€λ λ)μ μλ‘μ μμ(κ΅κ³Όμ, 체μ‘볡, μμ΄ν¨λ λ±)μ 곡μ ν μ μμ£ . (*λ€λ₯Έ λ° μΉκ΅¬ κ²μ λΉλ¦΄ μλ μκ² μ§λ§, μμμ νΈμμ±μ μν΄ μμ μ€μ΄λΌκ³ μκ°ν΄λ΄ μλ€.)
μΆμ²: λ무μν€ μΌκ°μμ¨νμ΅
νλ‘μΈμ€μ μ€λ λμ μ°¨μ΄λ?
- λ
립μ±:
νλ‘μΈμ€
λ μμ ν λ 립μ μΌλ‘ μ€νλμ§λ§,μ€λ λ
λ κ°μ νλ‘μΈμ€ λ΄μμ μ€νλλ―λ‘ μλ‘ μν₯μ μ€ μ μμ΅λλ€. - μμ 곡μ :
νλ‘μΈμ€
κ°μλ μμμ 곡μ νμ§ μμ§λ§,μ€λ λ
λ λ©λͺ¨λ¦¬ κ°μ μμμ 곡μ ν μ μμ΅λλ€. - μμ± λΉμ©:
νλ‘μΈμ€
λ₯Ό μλ‘ λ§λλ κ²μ λΉμ©μ΄ λ§μ΄ λ€μ§λ§,μ€λ λ
λ μλμ μΌλ‘ μ μ λΉμ©μΌλ‘ λ§λ€ μ μμ΅λλ€.
λ©ν°νλ‘μΈμ±(Multiprocessing)κ³Ό λ©ν°μ€λ λ©(Multithreading)μ΄λ?
- λ©ν°νλ‘μΈμ±μ μ¬λ¬ νλ‘μΈμ€λ₯Ό λμμ μ€ννλ κ²μ λ§ν©λλ€. κ°κ°μ νλ‘μΈμ€κ° λ
립μ μΌλ‘ μλνκΈ° λλ¬Έμ, νλκ° λ¬Έμ κ° μ겨λ λ€λ₯Έ νλ‘μΈμ€μλ μν₯μ μ£Όμ§ μμμ. μ΄λ λ§μΉ μ¬λ¬ κ΅μ€μμ μ¬λ¬ λͺ
μ νμμ΄ λμμ 곡λΆνκ³ μλ κ²κ³Ό λΉμ·ν©λλ€. (aka
μΌμμκ°
μ λΆμΌμ§ κ³ 3 κ΅μ€) - λ©ν°μ€λ λ©μ νλμ νλ‘μΈμ€ λ΄μμ μ¬λ¬ μ€λ λκ° λμμ μμ
μ μ²λ¦¬νλ κ²μ
λλ€. μ΄ λ°©λ²μ μμμ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μμ§λ§, μ€λ λλ€μ΄ μμμ 곡μ νκΈ° λλ¬Έμ μλ‘ μν₯μ μ€ μ μμ΄ κ΄λ¦¬κ° νμν΄μ. μ΄λ ν κ΅μ€μμ μ¬λ¬ λͺ
μ΄ μλ‘ λ€λ₯Έ κ³Όμ λ₯Ό λμμ νλ κ²κ³Ό λΉμ·ν©λλ€. (aka
κ³ 3 κ΅μ€
μμ νμλ€μ΄ κ°μμ 곡λΆλ₯Ό νλ κ²)
μΆμ²: Tug of War: MultiProcessing Vs MultiThreading (Medium Blog)
μΈμ μ΄λ€ κ²μ μ¬μ©νλμ?
- λ©ν°νλ‘μΈμ±μ
μμ μ΄ μλ‘ λ 립μ
μ΄κ³ , νλμ μμ μ΄ λ€λ₯Έ μμ μ μν₯μ μ£Όμ§ μλ κ²½μ°μ μ μ©ν©λλ€. μλ₯Ό λ€μ΄, 볡μ‘ν μν λ¬Έμ λ₯Ό μ¬λ¬ λμ μ»΄ν¨ν°κ° λμμ νΈλ μν©μ΄ μ΄μ ν΄λΉν΄μ. - λ©ν°μ€λ λ©μ
μμ λ€μ΄ μμμ 곡μ
ν΄μΌ νκ³ , μμ μμ λ€μ λΉ λ₯΄κ² μ²λ¦¬ν΄μΌ ν λ μ μ©ν©λλ€. μλ₯Ό λ€μ΄, μΉ μλ²κ° λμμ μ¬λ¬ μ¬μ©μμ μμ²μ μ²λ¦¬ν΄μΌ νλ κ²½μ°κ° μ΄μ ν΄λΉν©λλ€.
μμλ‘ μ΄ν΄νκΈ°
- λ©ν°νλ‘μΈμ± μμ: μ¬λ¬λΆμ΄ λλ£λ€κ³Ό ν¨κ» λν νλ‘μ νΈλ₯Ό μ§ννλ€κ³ μκ°ν΄ 보μΈμ. νλ‘μ νΈλ₯Ό λ 빨리 μμ±νκΈ° μν΄, κ°μ λ€λ₯Έ λΆλΆμ λ§‘μμ κ°μμ μ§μμ μμ μ ν©λλ€. μ΄λ κ² νλ©΄, μΉκ΅¬ ν λͺ μ΄ λ¬Έμ μ λΆλͺνλ λ€λ₯Έ μΉκ΅¬λ€μ μμ μλ μν₯μ μ£Όμ§ μμ£ .
- λ©ν°μ€λ λ© μμ: ν ν νλ‘μ νΈλ₯Ό μ¬λ¬λΆμ΄ λ§‘μλ€κ³ μκ°ν΄ 보μΈμ. νλ‘μ νΈλ₯Ό 빨리 μμ±νκΈ° μν΄, μ¬λ¬λΆμ λ¬Έμ μμ±, κ·Έλν½ λμμΈ, λ°μ΄ν° λΆμ λ±μ λμμ μ§νν©λλ€. μ¬κΈ°μ μ¬λ¬λΆμ νλμ μ»΄ν¨ν°(νλ‘μΈμ€)λ₯Ό μ¬μ©νκ³ , κ° μμ μ λ³λμ νλ‘κ·Έλ¨(μ€λ λ)μΌλ‘ μ€νλλ κ²κ³Ό κ°μ΅λλ€. μ΄λ λͺ¨λ μμ μ΄ κ°μ μμ(μ»΄ν¨ν°)μ 곡μ νκΈ° λλ¬Έμ, μ μ‘°μ ν΄μ μμ ν΄μΌ ν΄μ.
λ©ν°νλ‘μΈμ±κ³Ό λ©ν°μ€λ λ©μ κ°κ°μ μ₯λ¨μ μ΄ μμ΄, μν©μ λ°λΌ μ μ ν μ νν΄μ μ¬μ©ν΄μΌ ν©λλ€.