概述
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::future与std::async所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复