Cùng 3 handler, 1 loop (1 thread JS). Trái: mỗi
handler await I/O → nhả loop. Phải: handler #2
sync ôm loop vài tick → resume khác phải chờ.
← bài viết
·
coroutine
I/O xong → continuation vào microtask / ready. Loop lần lượt resume. Ba handler đều tiến.
Bấm Chạy.
tick 0
H2 chạy CPU sync dài. H1/H3 I/O có thể đã xong nhưng chưa resume đến khi H2 nhả.
Bấm Chạy.
tick 0
Đơn giản hóa: gộp macrotask I/O completion → “ready”. Ý chính: settle Promise chỉ xếp hàng resume; loop đang bận sync thì hàng đứng.