04 2012 档案
摘要:先看下构架,异步代理库(Agents Library)的位置和并行库相似:异步编程模式用的是数据流,数据只有在可用的情况下才会被处理,这和习惯使用的控制流有很大区别。数据流就必然会用到消息传递函数和消息块,比方说A->B,A和B就是消息块,用来发送或接受消息,AB之间的通信由消息传递函数来完成。异步代理把任务调度有关操作封装成类,并定义有一系列生存状态,如下图所示,实线表示由用户调用,虚线表示由运行时调用。 自定义异步代理需要继承Concurrency::agent类并重写run函数。看下面MSDN提供的例子。例程从文件中读取数据,并用消息传递函数Concurrency::asend异步
阅读全文
摘要:并行依赖的是底层多线程处理机制,线程的创建和销毁,还有线程间的同步问题常常令人望而生畏。concrrency runtime提供的并行库Parallell Patterns Library (PPL)提高了线程处理机制的抽象级别,让C++多线程并行变得异常的简单。
阅读全文
摘要:lambda表达式不是什么新玩意,熟悉.net的朋友一定不会陌生,但对于C++却是新标准C++0x推出后才有的,其功能之强大,堪称编程利器。一般认为lambda表达式是一个匿名函数,其返回类型是function对象,例如可以这样来声明:#include <functional>int main(){ // Assign the lambda expression auto f1 = [] (int x, int y) { return x + y; }; // Assign the same lambda expression to a function object. fu...
阅读全文
浙公网安备 33010602011771号