ํฐ์คํ ๋ฆฌ ๋ทฐ
[์ด์์ฒด์ ] ๋๊ธฐ์ ๋น๋๊ธฐ, Blocking๊ณผ Non-Blocking
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 10. 19. 18:21
๋๊ธฐ VS ๋น๋๊ธฐ
๋๊ธฐ๋ ์์ฐจ์ , ์ง๋ ฌ์ ์ผ๋ก ํ ์คํฌ๋ฅผ ์ํํ์ง๋ง ๋น๋๊ธฐ๋ ๋ณ๋ ฌ์ ์ผ๋ก ํ ์คํฌ๋ฅผ ์ํํฉ๋๋ค.
๋๊ธฐ(Synchronous)๋?
๋๊ธฐ๋ ์์ฒญ์ ๋ณด๋ธ ํ ์๋ต(๊ฒฐ๊ณผ๋ฌผ)์ ๋ฐ์์ผ์ง๋ง ๋ค์ ๋์์ด ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์์ ๋งํฉ๋๋ค. ์ฆ, ๋ชจ๋ ์ผ์ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ฉฐ ์ด๋ค ์์ ์ด ์ํ์ค์ด๋ผ๋ฉด ๋ค์ ์์ ์ ๋๊ธฐํฉ๋๋ค.
- ์ฅ์ : ์ค๊ณ๊ฐ ๊ฐ๋จํ๊ณ ์ง๊ด์
- ๋จ์ : ๊ฒฐ๊ณผ๋ฅผ ๋ณผ๋ ๊น์ง ์๋ฌด๊ฒ๋ ๋ชปํ๊ณ ๋๊ธฐ
๋น๋๊ธฐ(Asynchronous)๋?
๋น๋๊ธฐ๋ ๋์์ ์ผ์ด๋์ง ์๋๋ค๋ ์๋ฏธ๋ก, ์์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ ๋์์ ์ผ์ด๋์ง ์๋๋ค๋ ์ฝ์์ ๋๋ค. ์ฆ, ์์ฒญํ ๊ทธ ์๋ฆฌ์์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ง์ง ์์๋ ๋๋ฉฐ ๋ ธ๋ ์ฌ์ด์ ์์ ์ฒ๋ฆฌ ๋จ์๋ฅผ ๋์์ ๋ง์ถ์ง ์์๋ ๋ฉ๋๋ค.
- ์ฅ์ : ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ง๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๊ทธ๋์ ๋ค๋ฅธ ์์ ์ด ๊ฐ๋ฅํด ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ
- ๋จ์ : ์ค๊ณ๊ฐ ๋๊ธฐ๋ณด๋ค ๋ณต์กํจ
Blocking VS Non-Blocking
Blocking/Non-Blocking์ ๋๊ธฐ/๋น๋๊ธฐ์ ๋ค๋ฅธ ๊ด์ ์ผ๋ก, ๋ด๊ฐ ์ง์ ์ ์ดํ ์ ์๋ ๋์(IO, ๋ฉํฐ์ค๋ ๋)์ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ถ๋ฅ์ ๋๋ค. Blocking์ ๋์์ ์์ ์ด ๋๋ ๋๊น์ง ์ ์ด๊ถ์ ๋์์ด ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ Non-Blocking์ ๋์์ ์์ ์๋ฃ์ฌ๋ถ์ ์๊ด์์ด ์๋ก์ด ์์ ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
Blocking์ด๋?
์ง์ ์ ์ดํ ์ ์๋ ๋์์ ์์ ์ด ๋๋ ๋๊น์ง ์ ์ด๊ถ์ ๋๊ฒจ์ฃผ์ง ์๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ํธ์ถํ๋ ํจ์๊ฐ I/O ์์ ์ ์์ฒญํ ๋ I/O ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ๋๊น์ง ์๋ฌด ์ผ๋ ํ์ง ๋ชปํ๊ณ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ๋งํฉ๋๋ค.
- ์ฅ์ : ์์ ์ด ์์ฐจ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ์ ์์ ํ๋ฆ์ ์ฝ๊ฒ ์ดํดํ ์ ์์
- ๋จ์ : ๋ธ๋กํน์ด ์ด๋ฃจ์ด์ง๋ ๋์์ ํ๋์จ์ด ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ์ง ๋ชปํจ
Non-Blocking์ด๋?
์ง์ ์ ์ดํ ์ ์๋ ๋์์ ์์ ์ฒ๋ฆฌ ์ฌ๋ถ์ ์๊ด์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ํธ์ถํ๋ ํจ์๊ฐ I/O ์์ ์ ์์ฒญํ ๋ค I/O ์์ ์ ๋ํ ์ฒ๋ฆฌ ์๋ฃ ์ฌ๋ถ์ ์๊ด์์ด ๋ฐ๋ก ์์ ์ ์์ ์ ์ํํ ์ ์๋ ๊ฒ์ ๋งํฉ๋๋ค.
- ์ฅ์ : ๋ฆฌ์์ค๊ฐ ๋ญ๋น๋๋ ์๊ฐ์ด ์๊ธฐ์, ํ๋์จ์ด ๋ฆฌ์์ค๋ฅผ ๊ท ์ผํ๊ณ ํจ์จ์ ์ผ๋ก ์ด์ฉ ๊ฐ๋ฅ
- ๋จ์ : ์ ๋ฌดํ๋ฆ์ด ๋งค์ฐ ๋ณต์กํด์ง๋ ๋จ์ ์ด ์กด์ฌ
[์ฐธ๊ณ ]
https://velog.io/@tess/Sync-Async-vs-Blocking-non-Blocking
https://velog.io/@alicia-mkkim/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0%EB%9E%80
https://iceflower.gitbooks.io/vertx-studybook/content/thread-safe.html
'CS > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] Unix์ Linux๋? + (Shell Script๋?) (1) | 2022.10.18 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ์ค๋ ๋ (1) | 2022.09.25 |
[์ด์์ฒด์ ] ๋ฌธ๋งฅ ๊ตํ(Context Switching)์ด๋? (0) | 2022.07.23 |
[์ด์์ฒด์ ] ํ์ด์ง๊ณผ ์ธ๊ทธ๋จผํ ์ด์ (0) | 2022.07.20 |
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋? (VM์ด๋?) (0) | 2022.07.19 |
- Total
- Today
- Yesterday
- ์ด๋ถํ์
- Baekjoon
- map
- ๋ ์์ปฌ ํ๊ฒฝ
- ์ฝ๋ฉํ ์คํธ
- TDD
- ๋์์ธ ํจํด
- ์นด์นด์ค ์ธํด
- ์ ์ญ ๋ณ์
- http
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋ฐฑ์ค node.js
- ๋ฐฑ์ค javascript
- ์ด์์ฒด์
- ์๊ณ ๋ฆฌ์ฆ
- git
- ํ๋กํ ์ฝ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- JavaScript
- ํฌํฌ์ธํฐ
- fp
- ํ๋กํผํฐ
- ๋คํธ์ํฌ
- ๋ฐฑ์ค
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |