Skip to content

Latest commit

ย 

History

History
8 lines (6 loc) ยท 905 Bytes

EventLoop.md

File metadata and controls

8 lines (6 loc) ยท 905 Bytes
  • JavaScript Event Loop

    JS Engine์€ Call Stack, Task Queue, Heap, ๊ทธ๋ฆฌ๊ณ  Event Loop๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

    • ์ฝœ์Šคํƒ์€ ๋ง๊ทธ๋Œ€๋กœ ํ•จ์ˆ˜ ์ฝœ์Šคํƒ์ด๋‹ค. ์Šคํƒ์— ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•จ์ˆ˜๋ถ€ํ„ฐ ์ˆ˜ํ–‰๋˜๊ณ , ์ˆ˜ํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ์Šคํƒ์—์„œ ๋น ์ง„๋‹ค.
    • Heap ์—๋Š” ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
    • Task Queue : ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” Task๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๋Œ€๊ธฐ์—ด๋กœ, ์ฝœ์Šคํƒ์ด ๋น„์–ด์กŒ์„ ๋•Œ ๋Œ€๊ธฐ์—ด์— ๋จผ์ € ๋“ค์–ด์˜จ ์ˆœ์„œ๋กœ ์ฝœ์Šคํƒ์œผ๋กœ ์˜ฎ๊ธด๋‹ค. JS์—์„œ ๋น„๋™๊ธฐ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋Š” ๋ฐ”๋กœ ์ฝœ์Šคํƒ์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, task queue๋กœ ์˜จ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋‚˜, setTimeout ๋“ฑ. ๊ทธ๋ฆฌ๊ณ  WebAPI ์˜์—ญ์˜ ์ฝ”๋“œ๋„ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ๋กœ ๋„˜์–ด์˜จ๋‹ค.
    • EventLoop : ์ฝœ์Šคํƒ์ด ๋น„์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ, ๋น„์—ˆ๋‹ค๋ฉด Task Queue์˜ ์ž‘์—…์„ ์˜ฎ๊ธฐ๋Š” ์—ญํ•