получить запрос -> отправить его в очередь -> встать в ожидание ответа из очереди
println!("data fd: {}, must be {fd}", data.fd);
Спойлер: во втором случае если и удасться их заспавнить, то cpu будет занят лишь одним - переключением контекста с треда на тред.
То что называется горутины, по сути является и корутинами. Корутины есть почти в любом современном языке программирования (если не в любом). Это и те же async / await Rust, Promises в JS и так далее.