Volatile
μ½μ΄μλ μ½μ΄λ§λ€ λ³λμ μΊμλ₯Ό κ°μ§κ³ μλλ°, μ½μ΄μ¨ κ°μ μΊμμ μ μ₯νκ³ μΊμμμ κ°μ μ½μ΄μ¨λ€. λ§μ½ λ€μ κ°μ κ°μ μ½μ΄μ€λ €κ³ νλ©΄ μΊμμμ μ½μ΄μ€κΈ° λλ¬Έμ λ©λͺ¨λ¦¬μ κ°μ΄ λ³κ²½λμ΄λ μΊμμ μ μ₯λ κ°μ μ½μ΄μ¬ μ μλ€.
volatile
λ₯Ό λ³μμ μ μ©νλ©΄ μΊμκ° μλ νμ λ©λͺ¨λ¦¬μμ μ§μ μ½κ³ μ°λλ‘ νμ¬, λ³μμ κ°μ΄ λ³κ²½λλ©΄ λ€λ₯Έ μ€λ λμμλ μ¦μ λ³κ²½λ κ°μ μ½μ μ μκ² λλ€.
μμν
JVMμ λ°μ΄ν°λ₯Ό 4byte λ¨μλ‘ μ½μ΄μ€κ³ μ°κΈ° λλ¬Έμ int
λ λ³΄λ€ μμ νμ
λ€μ μμμ μΌλ‘ μ½κ³ μ°κΈ°κ° κ°λ₯νλ€.
νμ§λ§ long
κ°μ ν° νμ
μ νλμ λͺ
λ Ήμ΄λ‘ μ½κ³ μΈ μ μκΈ° λλ¬Έμ λ³μμ κ°μ μ½κ³ μ°λ λμ€ λ€λ₯Έ μ€λ λκ° κ°μ λ³κ²½νλ©΄ κ°μ λΆμΌμΉκ° λ°μν μ μλ€.
μ΄λ volatile
μ μ¬μ©νκ±°λ synchronized
λ₯Ό μ¬μ©νμ¬ ν΄κ²°ν μ μλ€.
volatile
: ν΄λΉ λ³μμ λν μ½κΈ°/μ°κΈ°λ₯Ό μμμ μΌλ‘ μ²λ¦¬synchronized
: ν΄λΉ λΈλ‘μ κ°μΈμ§ μ½λλ₯Ό μμμ μΌλ‘ μ²λ¦¬
volatile & synchronized
volatile
λ λ³μμ μ½κΈ°/μ°κΈ°λ§ μμν μν¬ λΏ, λκΈ°ν μν€λ κ°λ
μ μλλ€.
μλ μ½λμμ balance
λ volatile
λ‘ μ μΈλμ΄ μμ§λ§, getBalance()
μ withdraw()
λ λκΈ°ν μ²λ¦¬ λμ΄ μμ§ μμ λ,
balance
μ κ°μ΄ λ³κ²½λλ λμ€μ getBalance()
κ° νΈμΆλλ©΄ κ°μ λΆμΌμΉκ° λ°μν μ μλ€.
μ°Έκ³ μλ£
Last updated
Was this helpful?