I have tried to read up on the rust documentation https://rust-lang.github.io/async-book/ and viewed steve klabnik's talks. But still trying to piece things together.
Am i right to say that
- Rust implementation of non blocking computation i.e. async is like Node.js: as an event loop?
- But that effectively makes it single threaded which is not very performant which is why the green thread concept is also present and introduced by runtimes like for example tokio
- So this is effectively a mix of both event loop and green threads in that there are multiple event loops which acts like green thread and scheduled by say tokio runtime???
Admittedly i do not know this topic very well and have read on topics like:
- Blocking vs Non Blocking IO
- CPU vs IO bound computation
- Event loop vs Green threads