๐ฅ๏ธ ๋ฐฑ์๋/Java32 ์ด์ 1 2 3 4 5 ๋ค์ [ch.14] java.util.function ํจํค์ง ์ผ๋ฐ์ ์ผ๋ก ์์ฃผ ์ฐ์ด๋ ํ์์ ๋ฉ์๋๋ฅผ ํจ์ํ ์ธํฐํ์ด์ค๋ก ๋ฏธ๋ฆฌ ์ ์ํด๋ . java.util.function ํจํค์ง์ ์ธํฐํ์ด์ค๋ค์ ๋งค๊ฐ๋ณ์์ ๋ฐํ๊ฐ ๋ชจ๋ ์ ๋ค๋ฆญ ํ์ ์ผ๋ก ์ ์ธ๋์ด ์์. ๋ฐ๋ผ์ ๊ธฐ๋ณธํ ๊ฐ(primitive type)์ ์ฒ๋ฆฌํ ๋๋ ํด๋น ๊ธฐ๋ณธํ์ ๋ํผ(wrapper) ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํจ. ์กฐ๊ฑด์ ํํ์ ์ฌ์ฉ๋๋ Predicate predicate๋ Function์ ๋ณํ์ผ๋ก ๋ฐํํ์ ์ด boolean์. ์กฐ๊ฑด์์ ๋๋ค์์ผ๋ก ํํํ ๋ ์ฌ์ฉํจ. java.util.function ํจํค์ง์ ํจ์ํ ์ธํฐํ์ด์ค์ ์ ์๋ ๋ฉ์๋๋ค ๊ธฐ๋ณธํ์ ์ฌ์ฉํ๋ ํจ์ํ ์ธํฐํ์ด์ค ๋จ์ง ์ฑ๋ฅ ๋๋ฌธ์ ์ฌ์ฉํจ. Function์ ํฉ์ฑ ๋ ๋๋ค์์ ํฉ์ฑํด์ ์๋ก์ด ๋๋ค์์ ๋ง๋ค ์ ์์. ์ด๋ ํจ์๋ฅผ ๋จผ์ ์ ์ฉํ๋๋์ .. 2023. 11. 15. [ch.14] ๋๋ค์ ๋๋ค์ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ ์ฝ๋ ๋ธ๋ก ์์ฒด๋ฅผ ์ ๋ฌํจ. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ฐ๋ ์ ์ ์ฉํ ๊ฒ. ๋๋ค์์ผ๋ก ํจ์ํ ์ธํฐํ์ด์ค๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์์. ํจ์ํ ์ธํฐํ์ด์ค ๋๋ค์์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ์ค์ง ํ๋์ ์ถ์๋ฉ์๋๋ง ์ ์๋์ด์์ด์ผํจ(์ ์ฝ) ๊ทธ๋์ผ ๋๋ค์๊ณผ ์ธํฐํ์ด์ค์ ๋ฉ์๋๊ฐ 1:1์ฐ๊ฒฐ. static๋ฉ์๋์ default๋ฉ์๋๋ ๊ฐ์ ์ ์ฝX ์ต๋ช ๊ฐ์ฒด๋ฅผ ๋๋ค์์ผ๋ก ๋์ฒด ๊ฐ๋ฅํ ์ด์ ๋๋ค์์ ์ค์ ๋ก ์ต๋ช ๊ฐ์ฒด์. ํจ์ํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์ต๋ช ๊ฐ์ฒด์ ๋ฉ์๋์ ๋๋ค์์ ๋งค๊ฐ๋ณ์ ํ์ ๊ณผ ๊ฐ์, ๋ฐํ๊ฐ์ด ์ผ์นํด์. ๋ฉ์๋ ์ฐธ์กฐ ์ด๋ฏธ ๊ตฌํ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ์ฌ ์ฌ์ฉํจ. ์ฝ๋ ์ค๋ณต ๋ฐฉ์ง. ๊ฐ๋ ์ฑ↑, ์ฝ๋์ ๊ฐ๊ฒฐํ ์์ฑ. ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํจ. ๋๋ค์์ ํธ์ถํ๋ ์ฐธ์กฐ๋ณ์ f์ ํ์ ๋๋ค์๊ณผ ๋๋ฑํ ๋ฉ์.. 2023. 11. 15. [CH.13] ์ฐ๋ ๋์ ๋๊ธฐํ(Lock) ์ฐ๋ ๋์ ๋๊ธฐํ ํ ์ฐ๋ ๋๊ฐ ํน์ ์์ ์ ๋๋ง์น๊ธฐ ์ ๊น์ง, ๋ค๋ฅธ ์ฐ๋ ๋์ ์ํด ๋ฐฉํด๋ฐ์ง ์์์ผ ํจ. ๋ฉํฐ์ฐ๋ ๋ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๊ฐ์ ์์์ ๊ณต์ ํด์ ์์ ํ๋ฏ๋ก ์๋ก ์์ ์ ์ํฅ์ ์ค. ์๊ณ์์ญ : ๊ณต์ ๋ฐ์ดํฐ(์์)๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋ ์์ญ ๋ฝ : ์ ๊ธ, ๊ณต์ ๋ฐ์ดํฐ์ ๋ฝ์ ํ๋ํ ๋จ ํ๋์ ์ฐ๋ ๋๋ง ์๊ณ์์ญ ๋ด์ ์ฝ๋๋ฅผ ์ํํ ์ ์์. ๊ฐ์ฒด ๋จ์(๋ณ์๋ฌถ์, ๋ฐ์ดํฐ)๋ก ๋ฝ์ด ๊ฑธ๋ฆผ. ์ํ ํ์๋ lock์ ๋ฐ๋ฉํด์ผ ๋ค๋ฅธ ์ฐ๋ ๋ ์ํ์ด ๊ฐ๋ฅํจ. โ synchronized๋ฅผ ์ด์ฉํ ๋๊ธฐํ โกwait( )๊ณผ notify( )๋ฅผ ์ด์ฉํ ๋๊ธฐํ โขLock๊ณผ Condition์ ์ด์ฉํ ๋๊ธฐํ ์ฐ๋ ๋ ๋๊ธฐํ 3๊ฐ์ง ๋ฐฉ๋ฒ synchronized โ ๋ฉ์๋ ์ ์ฒด๋ฅผ ์๊ณ์์ญ์ผ๋ก ์ง์ ๋ฐํํ์ ์์ synchronized๋ถ์ด๊ธฐ.. 2023. 11. 15. [ch.13] ์ฐ๋ ๋ ์คํ ์ ์ด ๋ฉ์๋ ์ฐ๋ ๋์ ์คํ ์ ์ด “ํจ์จ์ ์ธ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ” =์ ๊ตํ ์ค์ผ์ค๋ง์ ํตํด ํ๋ก์ธ์ค์๊ฒ ์ฃผ์ด์ง ์์๊ณผ ์๊ฐ์ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๋ญ๋น์์ด ์ ์ฌ์ฉํ๋๋ก ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ. ๋ฉ์๋(1) static๋ฉ์๋๋ผ ์์ ์๊ฒ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํจ. (์์ =ํ์ฌ ์คํ ์ค์ธ ์ฐ๋ ๋) ๋ฉ์๋(2) ์ฐ๋ ๋์ ์ค์ผ์ค๋ง ๊ด๋ จ ๋ฉ์๋ sleep(์๊ฐ) static๋ฉ์๋ ์ง์ ๋ ์๊ฐ๋์ ์ฐ๋ ๋ ๋ฉ์ถ๊ธฐ. sleep์ ์ํด ์ผ์์ ์ง๋ ์ฐ๋ ๋๋ฅผ ๊นจ์ฐ๋(์คํ๋๊ธฐ ์ํ๋ก ๋ง๋ค๊ธฐ) ๋ฐฉ๋ฒ โ ์ง์ ๋ ์๊ฐ ๋ค ๋๊ธฐ โก interrupt( )ํธ์ถ sleep( )ํธ์ถ ์ ๋ฐ๋์ try-catch๋ฌธ์ผ๋ก ์์ธ์ฒ๋ฆฌ ํด์ฃผ์ด์ผ ํจ. (์ด๊ฒ์ ๋ฉ์๋๋ก ๋ง๋ค์ด๋ ๋จ) ๋ค๋ฅธ ์ฐ๋ ๋๊ฐ ํ์ฌ ์ฐ๋ ๋์๊ฒ interruptํ๋ฉด sleep( )๋ฉ์๋๊ฐ Interrupted.. 2023. 11. 15. [ch.13] ํ๋ก์ธ์ค์ ์ฐ๋ ๋ ํ๋ก์ธ์ค์ ์ฐ๋ ๋ ํ๋ก์ธ์ค: ์คํ์ค์ธ ํ๋ก๊ทธ๋ , OS๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์. ์ฐ๋ ๋๊ฐ ์ผํ๋ ์์ ํ๊ฒฝ ์ฐ๋ ๋: ํ๋ก์ธ์ค ์์์ ์ด์ฉํด์ ์ค์ ๋ก ์์ ์ ์ํํ๋ ๊ฒ. ๋ฉํฐ์ฐ๋ ๋: ๋ ์ด์์ ์ฐ๋ ๋๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค ๋ฉํฐ์ฐ๋ ๋ฉ ์ฅ์ โ CPU ์ฌ์ฉ๋ฅ ํฅ์ โก ์์ ํจ์จ์ ์ฌ์ฉ โข ์ฌ์ฉ์์ ๋ํ ์๋ต์ฑ ํฅ์ โฃ ์ง์ ๋ถ๋ฆฌ = ์ฝ๋ ๊ฐ๊ฒฐ *๊ณ ๋ ค์ฌํญ: ์์์ ๊ณต์ ํ์ฌ ์์ ํ๋ฉฐ ์๊ธฐ๋ ๋๊ธฐํ, ๊ต์ฐฉ์ํ ๋ฑ์ ๊ณ ๋ คํ ๊ฒ ์ฐ๋ ๋์ ๊ตฌํ Thread ํด๋์ค๋ฅผ ์์ํ๊ฑฐ๋, Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ run( )๋ฉ์๋์ ๋ชธํต{ }์ ์ฑ์ฐ๋ ๊ฒ. ์ง๊ธ๊น์ง ํ ํด๋์ค์ main๋ฉ์๋์ ์ฐ๋ ๋ด์ฉ์ run( )๋ฉ์๋์ ๊ตฌํ๋ถ์์์ฑํ๋ฉด ๋๋ ๊ฒ์. Runnable ์ธํฐํ์ด์ค: ์ค์ง run()๋ง ์ ์๋์ด์๋ ๊ฐ๋จํ ์ธํฐํ์ด.. 2023. 11. 15. [ch.12] ์ด๊ฑฐํ, ์ ๋ํ ์ด์ 2023. 11. 14. [ch.11] ์ง๋ค๋ฆญ์ค ํ๋ฅผ ์ฎ๊ธฐ๊ธฐ ํ๋ค์ด์ ๋ง๋ค์ด๋์๋ ํ์ผ ์ด๋ฏธ์ง๋ก ๋์ฒดํฉ๋๋ค ใ ใ 2023. 11. 14. ์ด์ 1 2 3 4 5 ๋ค์