Python GIL
GILμ΄λ?
GIL μ μ€λ λμμ μ¬μ©λλ Lock μ μΈν°νλ¦¬ν° λ λ²¨λ‘ νμ₯ν κ°λ
μ¬λ¬ μ€λ λκ° λμμ μ€νλλκ±Έ λ°©μ§νλ€
μ΄λ μμ μ΄λ νλμ Bytecode λ§μ΄ μ€νλλλ‘ κ°μ νλ€
κ° μ€λ λλ λ€λ₯Έ μ€λ λμ μν΄ GIL μ΄ ν΄μ λκΈΈ κΈ°λ€λ¦° νμμΌ μ€νλ μ μλ€
λ©ν° μ€λ λλ‘ λ§λ€μμ΄λ λ³Έμ§μ μΌλ‘ μ±κΈ μ€λ λλ‘ λμ
μ₯μ
: GIL μ νμ©ν λ©ν° μ€λ λκ° κ·Έλ μ§ μμ λ©ν° μ€λ λλ³΄λ€ κ΅¬νμ΄ μ¬μ°λ©°, λ νΌλ°μ€ μΉ΄μ΄ν μ μ¬μ©νλ λ©λͺ¨λ¦¬ κ΄λ¦¬ λ°©μμμ GIL λλΆμ μ€λ²ν€λκ° μ μ΄ μ±κΈ μ€λ λμΌ λ fine grained lock λ°©μ λ³΄λ€ μ±λ₯μ΄ μ°μνλ€
λ¨μ
μ±λ₯ λ¬Έμ
GIL λλ¬Έμ μ±λ₯ λ¬Έμ κ° λλλλ κ²½μ°λ μμΆ, μ λ ¬, μΈμ½λ© λ± μνμκ°μ
CPU μ μν₯μ΄ ν° μμ (CPU bound)
μλ©ν° μ€λ λ
λ‘ μννλλ‘ ν κ²½μ°λ€μ΄ λ GIL λλ¬Έμ λ©ν° μ€λ λλ‘ μμ μ μνν΄λ μ±κΈ μ€λ λμΌ λμ λ³λ° μ°¨μ΄κ° λμ§ μλλ€
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μ
λ©ν° μ€λ λ
λ νμΌ, λ€νΈμν¬ IO κ°μIO bound νλ‘κ·Έλ¨
μ μ¬μ©νκ³λ©ν° νλ‘μΈμ€
λ₯Ό νμ©ν΄μΌνλ€
Last updated