3 request, 1 runner (event loop / thread JS). Mỗi coroutine: làm → await (suspend) → resume → xong. ← bài viết · block vs non-block
Bấm Chạy — xem await = suspend, data về = resume.
tick ~ 0
Nếu mỗi request ôm 1 thread suốt lúc chờ mạng, bạn cần 3 thread song song. Ở đây 3 coroutine suspend — runner vẫn deal lần lượt đoạn CPU.