C++11的异步调用
来源:互联网 发布:如何开手机淘宝 编辑:程序博客网 时间:2024/05/21 08:46
用C++11的线程库完成异步调用非常方便,标准库提供了非常漂亮的接口。下面就是个很好的例子.
template<typename>struct async_call;template<typename R, typename... Args>struct async_call<R(Args...)>{template<typename F>async_call(F&& f, Args... args){std::packaged_task<R(Args...)> task(f);m_future=task.get_future();std::thread(std::move(task), args...).detach();}R get(){return m_future.get();}private:std::future<R> m_future;};
这个模版类简单地包装了一下标准库,这样调用:
int a=10, b=20;//需要异步执行的代码和参数async_call<int(int)> ac([](int x){ return x*x; }, a);//串行执行的代码b*=b;//合并计算结果,并输出cout<<ac.get()+b<<endl;
这样基本不用关心线程编程的细节,编程感受也和脚本类似了,哈哈。
0 0
- C++11的异步调用
- c#_delegate_异步调用_BeginInvoke
- C#Task异步调用方法
- C#的异步调用
- C#的异步调用
- RemObject的异步调用
- Flex的异步调用
- 异步调用的原理
- c#的异步调用
- 线程的异步调用
- nodejs的异步调用
- spring的异步调用
- JAVA的异步调用
- C#(同步调用、异步调用、异步回调)
- C#(同步调用、异步调用、异步回调)
- C#(同步调用、异步调用、异步回调)
- [C/C++]建议在异步调用的函数的Callback中预留UserData参数
- .net的MSMQ异步调用
- dwr session error
- 黑马程序员_泛型笔记
- 中国创造新的制度文明
- 详细剖析SQL查询(select语句)的每一步的逻辑处理---查询顺序及逻辑处理过程
- Java RMI 框架原理(远程方法调用)
- C++11的异步调用
- POJ 1811 Prime Test --- Miller 素数测试
- DWR实现省市级联
- 游戏 设计 理论{{{1
- Know the Core Objects of Your App
- VC---Explore.exe重启后,进程托盘消失恢复办法
- dio do ox sp
- Android中的ActionBar的简介(翻译自官方文档)——————个人笔记
- line 1: syntax error: "(" unexpected