Volatile
Last updated
Was this helpful?
Last updated
Was this helpful?
Volatile๋ฅผ ์ค๋ช ํ๊ธฐ ์ , ์ปดํจ์ ์๋ ๋ฐฉ์ ๋ถํฐ ์ค๋ช ํ ์งํํฉ๋๋ค.
CPU์ MEMORY๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. CPU๋ ๋ง์ ๋ช ๋ น์ ์ํํ๊ธฐ ๋๋ฌธ์ RAM์์ ๊ฐ์ ธ์ค์ง ์๊ณ Out-of-order execution, Branch predictor, Speculative execution, Caching์ ์ด์ฉํฉ๋๋ค
Cpu์ Memory๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ถํฐ ํ์ธํฉ๋๋ค
์ฌ๋ฌ ๋ก์ปฌ ์บ์์ ์ ์ฅ๋๋ ๊ณต์ ๋ฆฌ์์ค ๋ฐ์ดํฐ์ ๊ท ์ผ์ฑ์ ์ผ๊ด๋๊ฒ ๋์ํ๊ฒ ํด์ผ ํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ฆฌ ์บ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ๋ค์ค ์ฒ๋ฆฌ CPU์์๋ ๋์ฑ ๋๋๋ฌ์ง๋๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ Counter๊ฐ ๋ ๊ฐ์ด Memory์ ์ ์ฉ์ด ๋์ง ์์ Reader๊ฐ ๊ณ์ ๋ฐ์๋์ง ์์ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
Volatile์ ์ฌ์ฉํ๋ฉด Memory์ ์ ์ฅํ๊ณ ์ฝ๊ฒ๋ฉ๋๋ค. ํ๋์ Thread๋ง Read&Write ํ ์ ์์ผ๋ฉฐ, ๋๋จธ์ง Thread๋ ๊ฐ์ฅ ์ต์ ์ ๊ฐ์ readํ ์ ์๋ค.
์ฌ๋ฌ Thread๊ฐ ์ฝ๊ธฐ ์์ ์ ํ๋ ๊ฒฝ์ฐ์ ์ ํฉํ์ง ์์ผ๋ Synronized๋ฅผ ์ฌ์ฉํฉ๋๋ค.