The Rust threaded solution obviously produces actual threads, which will run "actually in parallel" if that is technically possible on your system.
The Rust tokio solution will use tokio's runtime which automatically spawns an appropriate amount of worker threads to parallelize your async tasks (by default it asks the OS how many CPUs there are and creates one such thread for each CPU).