๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL -์ผ๊ฐ„ํ•™์Šต๊ธฐ๋ก/Java Script

๋น„๋™๊ธฐ ํ๋ฆ„ ์ดํ•ดํ•˜๊ธฐ

by ___Jin 2022. 2. 13.

๋™๊ธฐ์ ์ด๋ž€(synchronous)?

๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช… ํ•˜์ž๋ฉด...

 

<A,B ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ• ๋•Œ์˜ ๋™๊ธฐ์ ์ธ ํƒ€์ด๋ฐ>

|A์‹œ์ž‘-----------------A์ข…๋ฃŒ|

                                        |B์‹œ์ž‘---------------B์ข…๋ฃŒ|

A์—…๋ฌด๋ฅผ ๋งˆ์น ๋•Œ๊นŒ์ง€ B์—…๋ฌด๋ฅผ ๋ง‰์•„๋‘๋Š”๊ฒƒ์„ Blocking์ด๋ผ๊ณ ํ•˜๊ณ ,

๋๋‚˜๋Š” ์‹œ์ ๊ณผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์ด ๊ฐ™๊ธฐ๋•Œ๋ฌธ์— ๋™๊ธฐ์ ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค.

 

๋น„๋™๊ธฐ์ ์ด๋ž€(asynchronous)?

<A,B ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ• ๋•Œ์˜ ๋น„๋™๊ธฐ์ ์ธ ํƒ€์ด๋ฐ>

|A์‹œ์ž‘-----------------A์ข…๋ฃŒ|

|B์‹œ์ž‘---------B์ข…๋ฃŒ|

๋Œ€ํ‘œ์  ๋น„๋™๊ธฐ ํ•จ์ˆ˜์ธ setTimeout ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์‹คํ–‰๋œ๋‹ค.

https://poiemaweb.com/img/event-loop.gif

A,B๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰๋œ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ ๋˜์ง€์•Š๋Š”๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋‹จ์ˆœํžˆ ์ž‘์—…์ด ์š”์ฒญ๋˜๋ฉด Call Stack์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ๋œ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ๋ฟ์ด๋‹ค. 

์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ๋™์‹œ์„ฑ(Concurrency)์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋น„๋™๊ธฐ ์š”์ฒญ(์ด๋ฒคํŠธ๋ฅผ ํฌํ•จ) ์ฒ˜๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

์—”์ง„์„ ๊ตฌ๋™ํ•˜๋Š” ํ™˜๊ฒฝ ์ฆ‰ ๋ธŒ๋ผ์šฐ์ €(๋˜๋Š” Node.js)๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค.

 

๋Œ“๊ธ€