๐ Reference
๐ย Chapter
Multi thread
Single thread
Thread pool
Thread
- Thread
- ์ค๋ ๋
- ํ๋ก์ธ์ค๋ด์์ ์ค์ ๋ก ์์
์ ์ํํ๋ ์ฃผ์ฒด
- Context Switch
- CPU๊ฐ ์คํ์ค์ธ Process๋ฅผ ๋ฉ์ถ๊ณ ์๋ก์ด Process๋ฅผ ์คํํ ๋ ์ด์ Process์ Context๋ฅผ ์ ์ฅํ๊ณ ์๋ก์ด Process์ Context๋ก ๊ต์ฒดํ๋ ์์
- ์ฌ๋ฌ ๊ฐ์ Single Thread Process๊ฐ Context Switchํ๋ ๊ฒ๋ณด๋ค ํ๋์ Mutiple Thread Process๋ด์์ Thread๊ฐ Context Switchํ๋ ๊ฒ์ด Stack์์ญ๋ง ๊ต์ฒดํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋น์ฉ์ด ๊ฐ์ํ์ฌ ์ฑ๋ฅ์ด ์ฆ๊ฐํ๋ค.
- ํ ํ๋ก์ธ์ค ์์์๋ ์ฌ๋ฌ ์์
๋ค์ด ๋์์ ์งํ๋ ํ์๊ฐ ์๋ค. ์ด ๊ฐ๋๋ฅผ ์ค๋ ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ปดํจํฐ๋ ํ๋ก์ธ์ค๋ง๋ค ์์์ ๋ถํ ํด์ ํ ๋นํ๋ค.
- ์ค๋ ๋๋ CPU ์ฌ์ฉ์ ๊ธฐ๋ณธ ๋จ์์ด๋ค. ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ์ ๋จ์๋ฅผ ๋งํ๋ค.
- ํ ๋น ๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ์ ๋จ์์ด๋ค. ํ๋์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ์ค๋ ๋๋ ์ค๋ ๋ ID, ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ๋ ์ง์คํฐ ์ธํธ ๋ฐ ์คํ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ด์์ฒด์ ๋ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค๋ณด๋ค ์์ฑํ ๋ ์ค๋ฒํค๋(overhead: ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ๋ค์ด๊ฐ๋ ๊ฐ์ ์ ์ธ ์ฒ๋ฆฌ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ๋ฑ์ ๋งํ๋ค.)๋ ์ ๊ณ ๊ณต์ ๋ ์์์ ๋ํด์ ์ค๋ฒํค๋๊ฐ ์ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ ๋๋ฅผ ์ด์ฉํ๋ฉด ๋ณ๋ ฌ์ฑ์ ๋์ผ ์ ์๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
ํ๋๊ฐ ํ๋ก์ธ์ค์ด๊ณ ๊ทธ ์์์ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ์ค๋ ๋์ธ ์
์ด๋ค.
Thread - ํน์ง