๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Thread safe1

[JAVA] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) : ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๋ฌธ์ œ์  ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€? ํ•œ๋งˆ๋””๋กœ ์ •์˜ํ•˜์ž๋ฉด '๊ฐ์ฒด๋ฅผ ๋‹จ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด'! static์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์–ต์„ ์–ป์œผ๋ฉฐ, ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ(ํด๋ž˜์Šค)์—์„œ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ณตํ†ต๋œ ๊ฐ์ฒด๋ฅผ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ ๋œ๋‹ค. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ๋ณธ์ธ๋„ ์‹ฑ๊ธ€ํ†ค ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜์˜€๋Š”๋ฐ, ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„  ๋‘๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ getInstance()๋ฅผ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ๋‘๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. (= ๋™์‹œ์„ฑ ๋ฌธ์ œ, thread unsafe) public class Singleton { private static Singleton singleton = null; pri.. 2022. 2. 10.
728x90
๋ฐ˜์‘ํ˜•