μ μ λμμ± κ³μ°κΈ° μ¬μ©λ²
μ½μ΄ μμ λͺ©ν CPU μ΄μ©λ₯ , μμ 1건μ λκΈ° μκ°κ³Ό κ³μ° μκ°μ λ£μΌλ©΄ μ컀 μκ° λμ΅λλ€. μλ νλ κ°μ 쑰건μμ μ½μ΄ μλ§ λ°κΏ¨μ λμ κ°μ ν¨κ» λ³΄μ¬ μ€λλ€. μ²λ¦¬λκ³Ό μλ΅ μκ°μ λ£μΌλ©΄ 리ν λ²μΉμΌλ‘ λ³Έ νμ λμμ±κ³Ό λΉκ΅ν©λλ€.
κ³μ° λ°©μκ³Ό κ·Όκ±°
N = μ½μ΄ μ Γ λͺ©ν μ΄μ©λ₯ Γ (1 + λκΈ°/κ³μ°) μ΄λ©° Brian Goetz μ Java Concurrency in Practice μ λμ€λ μμ λλ€. μ½μ΄ 2κ°Β·μ΄μ©λ₯ 100%Β·λκΈ° 50 msΒ·κ³μ° 5 ms λ©΄ 22κ°, μ½μ΄ 4κ°λ©΄ 44κ°κ° λ©λλ€. λκΈ°κ° 0μ΄λ©΄ κ°μ΄ μ½μ΄ μμ κ°μμ§λλ€. 리ν λ²μΉ μͺ½μ μ²λ¦¬λ Γ μλ΅ μκ°μ λλ€.
νκ³μ μ£Όμμ¬ν
곡μΈλ κΆμ₯ μ컀 μλ μμΌλ©° λκΈ° μκ°μλ I/O λΏ μλλΌ λ½ λκΈ°λ λ€μ΄κ°λλ€. λ©λͺ¨λ¦¬λ λ€μͺ½ μμ€ν μ νλκ° λ¨Όμ 걸릴 μ μμ΄ λ°λμ μ€μ λΆνλ‘ μΈ‘μ ν΄ μ‘°μ νμΈμ. μμ λ§λ€ λκΈ°Β·κ³μ° μκ°μ΄ λ€λ₯΄λ©΄ νκ· κ°μΌλ‘ λ£μ λ§νΌ μ€μ°¨κ° μκΉλλ€. DB 컀λ₯μ ν μ μ© κ³μ°κΈ°κ° μλκ³ , ν μμ§ μκ°λ λ€λ£¨μ§ μμ΅λλ€.
μμ£Ό 묻λ μ§λ¬Έ
λκΈ° μκ°μ΄ κΈΈλ©΄ κ·ΈλμΌ ν©λλ€. μ½μ΄ 2κ°μ λκΈ° 50 ms, κ³μ° 5 ms λ©΄ 2 Γ (1 + 10) = 22κ°κ° λμ΅λλ€. λκΈ°κ° 0μ΄λ©΄ μ½μ΄ μμ κ°μμ§λλ€.
I/O λΏ μλλΌ λ½μ΄λ 쑰건 λ³μλ₯Ό κΈ°λ€λ¦° μκ°λ λͺ¨λ λκΈ°μ λλ€. CPU λ₯Ό μ€μ λ‘ μ΄ μκ°λ§ κ³μ° μκ°μΌλ‘ λ£μΌμΈμ.
μΆλ°μ μΌλ‘λ§ μ°μΈμ. λͺ¨λ κ²½μ°μ λ§λ μ΄μμ μΈ μλ μκ³ , λ©λͺ¨λ¦¬μ λ€μͺ½ μμ€ν μ νλκ° λ¨Όμ 걸리λ κ²½μ°λ λ§μ μ€μ λΆνλ‘ μ¬ λ³΄λ νΈμ΄ μμ ν©λλ€.