std::future是一个类模板(class template),其对象存储未来的值,一个std::future对象在内部存储一个将来会被赋值的值,并提供了一个访问该值的机制,通过get()成员函数实现。但如果有人视图在get()函数可用之前通过它来访问相关的值,那么get()函数将会阻塞,直到该值可用。
或者通过future对象的wait方法来获得
std::async(函数,参数)
异步运行一个函数,并且立即返回一个std::future对象。
std::async异步执行函数有三种策略。
- 立即开启一个线程运行此函数,返回std::future对象
- 延迟启动,在调用std::async()时不创建线程,直到调用了future对象的get()或wait()方法时,才创建线程;
- 自动,函数在某一时刻自动选择策略,这取决于系统和库的实现,通常是优化系统中当前并发的可用性
最后
以上就是激昂柠檬最近收集整理的关于std::future与std::async的全部内容,更多相关std内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复