"์๋ ํ์ธ์, ์๋ฏธ๊ณ ! ๋ง๋ณํต์น์ฝ์ด ์์ต๋๋ค. ๋ง๋ณํต์น์ฝ์ ๋๋ค. ์ด๋ฏธ ์ดํด๋ณด์๋ฏ์ด ์ ์ด๋์ง ์์ ์ค๋ ๋ ์ ํ์ด ๋ฌธ์ ์ ๋๋ค."
"์ค๋ ๋๊ฐ ๋ค์ ์ค๋ ๋๋ก ์ ํํ ์๊ธฐ๋ฅผ ์ค์ค๋ก ๊ฒฐ์ ํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํ์ํ ๋ชจ๋ ์์ ์ ์ํํ ๋ค์ ยซ์๋ฃํ์ต๋๋ค!ยป๋ผ๊ณ ์ ํธ๋ฅผ ๋ณด๋ด์ผ ํฉ๋๊น?"
"์ค๋ ๋ ์์ฒด๊ฐ ์ ํ์ ์ ์ดํ๋๋ก ํ์ฉํ๋ ๊ฒ์ ํจ์ฌ ๋ ํฐ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ ๋๋ค. ์๋ชป ์์ฑ๋ ์ฝ๋๊ฐ ์๊ณ ์ค๋ ๋๊ฐ CPU๋ฅผ ํฌ๊ธฐํ์ง ์๋๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ณผ๊ฑฐ์๋ ์ด๊ฒ์ด ์๋ํ๋ ๋ฐฉ์์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๊ฝค ์ ๋ชฝ์ด์์ต๋๋ค."
"์์์ด. ๊ทธ๋์ ํด๊ฒฐ์ฑ ์ด ๋ญ์ผ?"
" ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํฉ๋๋ค. ์ด๊ฒ์ด ์๋ํ๋ ๋ฐฉ์์ ๋๋ค."
์ค๋ ๋๊ฐ ๊ณต์ ๊ฐ์ฒด ๋ฐ/๋๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ์ค๋ ๋๊ฐ ์๋ก ๊ฐ์ญํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค . ์ฝ์ ์ถ๋ ฅ์ ์์์ ๋ณธ ๊ฒ์ฒ๋ผ ํ๋์ ์ฝ์๊ณผ ์ฌ๊ธฐ์ ๋ํ ๋ชจ๋ ์ค๋ ๋ ์ถ๋ ฅ์ด ์์ต๋๋ค. ์ง์ ๋ถํด.
๊ทธ๋์ ํน๋ณํ ๊ฐ์ฒด์ธ ๋ฎคํ ์ค ๊ฐ ๋ฐ๋ช ๋์์ต๋๋ค . ํ์ฅ์ค ๋ฌธ์ ยซ์ฌ์ฉ ๊ฐ๋ฅ / ์ ์ ยป ๋ผ๊ณ ํ์๋ ํ์งํ๊ณผ ๊ฐ์ต๋๋ค . ๋ ๊ฐ์ง ์ํ๊ฐ ์์ต๋๋ค: ๊ฐ์ฒด๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ ํ๊ฑฐ๋ ์ฌ์ฉ ์ค ์ ๋๋ค . ์ด๋ฌํ ์ํ๋ฅผ ยซ์ ๊นยป ๋ฐ ยซ์ ๊ธ ํด์ ยป๋ผ๊ณ ๋ ํฉ๋๋ค.
์ค๋ ๋๊ฐ ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต์ ํ๋ ๊ฐ์ฒด๊ฐ ํ์ํ ๋ ๊ฐ์ฒด์ ๊ด๋ จ๋ ๋ฎคํ ์ค๋ฅผ ํ์ธํฉ๋๋ค. ๋ฎคํ ์ค๊ฐ ์ ๊ธ ํด์ ๋๋ฉด ์ค๋ ๋๋ ์ด๋ฅผ ์ ๊ทธ๊ณ (ยซ์ฌ์ฉ๋จยป์ผ๋ก ํ์) ๊ณต์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํฉ๋๋ค. ์ค๋ ๋๊ฐ ์์ ์ ์๋ฃํ ํ ๋ฎคํ ์ค๊ฐ ์ ๊ธ ํด์ ๋ฉ๋๋ค(ยซ์ฌ์ฉ ๊ฐ๋ฅยป์ผ๋ก ํ์๋จ).
์ค๋ ๋๊ฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๊ณ ๋ฎคํ ์ค๊ฐ ์ ๊ธด ๊ฒฝ์ฐ ์ค๋ ๋๋ ๋๊ธฐํ๋ ๋์ ํด๋ฉด ์ํ๊ฐ ๋ฉ๋๋ค. ๋ฎคํ ์ค๊ฐ ์ ์ ์ค๋ ๋์ ์ํด ์ต์ข ์ ์ผ๋ก ์ ๊ธ ํด์ ๋๋ฉด ์ค๋ ๋๋ ์ฆ์ ์ ๊ทธ๊ณ ์คํ์ ์์ํฉ๋๋ค. ์์ค ๋์ด ์ฌ์ธ๊ณผ์ ๋น์ ๋ ์๋ฒฝํฉ๋๋ค.
"๊ทธ๋ผ ๋ฎคํ ์ค๋ก ์์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ํน์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๊น?"
"๊ทธ๊ฒ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํฉ๋๋ค. Java ์ ์์๋ ์ด ๋ฎคํ ์ค๋ฅผ Object ํด๋์ค์ ๋ด์ฅํ์ต๋๋ค. ๋ฐ๋ผ์ ๋ง๋ค ํ์์กฐ์ฐจ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ์ฒด์ ์ผ๋ถ์ ๋๋ค. ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค."
์ํธ | ์ค๋ช |
---|---|
|
swap ๋ฉ์๋๋ name1 ๋ฐ name2 ๋ณ์์ ๊ฐ์ ๊ตํํฉ๋๋ค.
๋์์ ๋ ์ค๋ ๋์์ ํธ์ถ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? |
์ค์ ์ฝ๋ ์คํ | ์ฒซ ๋ฒ์งธ ์ค๋ ๋์ ์ฝ๋ | ๋ ๋ฒ์งธ ์ค๋ ๋์ ์ฝ๋ |
---|---|---|
|
|
|
๊ฒฐ๋ก |
---|
๋ณ์ ๊ฐ์ด ๋ ๋ฒ ๋ฐ๋์ด ์๋ ์์น๋ก ๋์๊ฐ์ต๋๋ค. |
๋๊ธฐํ๋ ํค์๋์ ์ฃผ์ํ์ญ์์ค .
"๊ทธ๋, ๊ทธ๊ฒ ๋ฌด์จ ๋ป์ด์ผ?"
"์ค๋ ๋๊ฐ ๋๊ธฐํ๋จ์ผ๋ก ํ์๋ ์ฝ๋ ๋ธ๋ก์ ๋ค์ด๊ฐ๋ฉด Java ์์คํ ์ ๋๊ธฐํ๋ผ๋ ๋จ์ด ๋ค์ ๊ดํธ ์์ ํ์๋ ๊ฐ์ฒด์ ๋ฎคํ ์ค๋ฅผ ์ฆ์ ์ ๊ธ๋๋ค. ์ค๋ ๋๊ฐ ๋ ๋ ๋๊น์ง ๋ค๋ฅธ ์ค๋ ๋๋ ์ด ๋ธ๋ก์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ์ค๋ ๋๊ฐ ๋ ๋๋ ์ฆ์ ๋๊ธฐํ๋ ๊ฒ์ผ๋ก ํ์๋ ๋ธ๋ก, ๋ฎคํ ์ค๋ ์ฆ์ ์๋์ผ๋ก ์ ๊ธ ํด์ ๋๋ฉฐ ๋ค๋ฅธ ์ค๋ ๋์์ ํ๋ํ ์ ์์ต๋๋ค."
๋ฎคํ ์ค๊ฐ ์ฌ์ฉ ์ค์ด๋ฉด ์ค๋ ๋๋ ๊ฐ๋งํ ์์ ํด์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
"๋งค์ฐ ๊ฐ๋จํ๊ณ ์ฐ์ํฉ๋๋ค. ์๋ฆ๋ค์ด ์๋ฃจ์ ์ ๋๋ค."
"์. ํ์ง๋ง ์ด ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ ๊ฒ ๊ฐ์ต๋๊น?"
์ํธ | ์ค๋ช |
---|---|
|
swap ๋ฐ swap2 ๋ฉ์๋๋ ๋์ผํ ๋ฎคํ ์ค ( this ๊ฐ์ฒด)๋ฅผ ๊ณต์ ํฉ๋๋ค. |
ํ ์ค๋ ๋๊ฐ swap ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ค๋ฅธ ์ค๋ ๋๊ฐ swap2 ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?
"๋ฎคํ ์ค๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ์งธ ์ค๋ ๋๋ ์ฒซ ๋ฒ์งธ ์ค๋ ๋๊ฐ ๋๊ธฐํ๋ ๋ธ๋ก์ ๋ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋์ ์ก์ธ์ค์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค."
"์ํ์ด, ์๋ฏธ๊ณ ! ์ ๋ต์ด์ผ!"
์ด์ ๋๋ synchronized๊ฐ ์ฝ๋ ๋ธ๋ก๋ฟ๋ง ์๋๋ผ ๋ฉ์๋๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค . ์ด๊ฒ์ด ์๋ฏธํ๋ ๋ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ํธ | ์ค์ ๋ก ์ผ์ด๋๋ ์ผ |
---|---|
|
|
GO TO FULL VERSION