想让线程之间可以有两个数据的交换。之前一直采用的是全局变量+互斥锁的方法。到目前为止,线程运行完之后还无法提供一个返回值。
此时引入 future 和 async。
sync为同步的意思,async为异步任务。同步任务前文已经结束过:他指的是两个人协同完成一个任务。如我要问某一个学霸同学数学题,学霸同学先帮我看一下数学题,在告诉我,我在那坐等学霸同学看完教我,这叫做同步任务。
而异步任务是,学霸同学在帮我看数学题的同时,我去做别的题目,等学霸同学看完之后我再去做之前那个题。
创建异步任务就用async,其是一个异步的函数模板。
如下图所示:
async创建完线程之后开始执行线程里面的函数,此时并不会阻塞主线程的执行。返回值用fut.get()来接收。