Created by: panyx0718
I don't have much background. Feel free to let me know "deferred" is the expected behavior.
Reason for the change: defered means you need to call get/wait first, then the thread starts to run. async means the thread starts ASAP, wait/get are only used to get the result.
The code comment says: To wait for the completion of the task, call std::future::wait()
Hence, user would expect wait() is not a method to start the thread. It seems more reasonable to start running when the thread is available instead of waiting for a wait/get call.