-
<Java> Thread ์์๊ณผ Runnable ๊ตฌํ์ ์ฐจ์ด์ ๋ฐ ๋๊ธฐํ ๋ฉ์๋ ์ ์ธJAVA 2025. 3. 4. 20:28๋ฐ์ํ
๐น Thread์ Runnable์ ์ฐจ์ด
1๏ธโฃ Thread๋ฅผ ์์ํ๋ ๊ฒฝ์ฐ
โ ํน์ง
- Thread ํด๋์ค๋ฅผ ์ง์ ์์๋ฐ์.
- run() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ์ฌ ์คํํ ์ฝ๋ ์์ฑ.
- start() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด run()์ด ์คํ๋จ.
โ ๋จ์
- ์๋ฐ๋ ๋ค์ค ์์์ ์ง์ํ์ง ์์์ ์ด๋ฏธ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ๊ณ ์๋ค๋ฉด Thread๋ฅผ ์์ํ ์ ์์.
- ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ง๋ค ์๋ก์ด Thread ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ฏ๋ก ์ฌ์ฌ์ฉ์ด ์ด๋ ต๊ณ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์.
2๏ธโฃ Runnable์ ๊ตฌํํ๋ ๊ฒฝ์ฐ
โ ํน์ง
- Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ run() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋.
- Thread ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ Runnable ๊ตฌํ์ฒด๋ฅผ ์ธ์๋ก ๋๊ฒจ์ค์ผ ํจ.
โ๏ธ ์ฅ์
- ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์์(์ ์ฐ์ฑ ๋์).
- ์ฐ๋ ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ด ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ.
3๏ธโฃ ๋๊ธฐํ ๋ฉ์๋(Synchronized Method)๋?
๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ๊ฐ์ ์์์ ์ ๊ทผํ๋ฉด ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ํด๋น ๋ฉ์๋์ ์ ๊ทผํ๋๋ก ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ด ๋๊ธฐํ(Synchronization) ์ด๋ค.๐น ๋๊ธฐํ ๋ฉ์๋ ์ ์ธ ๋ฐฉ๋ฒ
โ synchronized ํค์๋๋ฅผ ๋ฉ์๋์ ๋ถ์ด๋ฉด, ํด๋น ๋ฉ์๋๋ฅผ ์คํ ์ค์ธ ์ค๋ ๋๊ฐ ๋๋ ๋๊น์ง
๋ค๋ฅธ ์ค๋ ๋๋ ์ ๊ทผํ ์ ์๋ค.
๐น ๋๊ธฐํ ๋ฉ์๋ ์์
๐ ์ค๋ ๋ ๊ฐ ์ถฉ๋ ์์ด ์์ฐจ์ ์ผ๋ก ์คํ๋จ.
synchronized๋ฅผ ์ ์ฉํ์ง ์์ผ๋ฉด ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ count๋ฅผ ์์ ํ์ฌ 1, 2, 3, ... ์์๊ฐ ๊ผฌ์ผ ์๋ ์๋ค.๐น ๋๊ธฐํ ๋ธ๋ก (Synchronized Block)
๋ง์ฝ ์ ์ฒด ๋ฉ์๋๋ฅผ ๋๊ธฐํํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ด๋ด ๋๋ ๋๊ธฐํ ๋ธ๋ก์ ์ฌ์ฉํด์ ํ์ํ ๋ถ๋ถ๋ง ๋ณดํธํ ์ ์๋ค.'JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
<Java> ๋ก์ปฌ ํด๋์ค์ ์ง์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ (0) 2025.02.25 <Java> ํด๋์ค ์ ์ธ๋ถ์์ ๋ณ์ ๊ฐ ์ฌํ ๋นํ ์ ์๋ ์ด์ (0) 2025.02.25 [Java] ์ธํฐํ์ด์ค๋? (2) 2025.02.13 [Java] ์ถ์ ํด๋์ค๋? (0) 2025.02.12 [Java] ์ฑ๊ธํค์ด๋? (0) 2025.02.12