博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
    毋庸质疑“多核时代”的到来,随着4核CPU成为主流配置,以后X核都只是时间问题。既然多核了,那么我们的程序还能像以前单核时代那样,随着硬件性能的提升而轻易的、低成本的提升吗?
    若是你的程序仍然不是并发的、异步的、多线程的,那么答案显然是:不能。
    多核时代的到来,让我们的程序不得不走向并发、异步、多任务的方向,现有的编程技术中,对并发、异步编程模式的支持虽然已经做了很多的工作,但是不可否认,在这个领域,仍然存在:学习成本高,调试困难,高质量代码编写困难,错误处理复杂等等问题,这也是的很多人都对并发异步编程退避三舍的主要原因。
    现在,一个能够快速学会,容易上手,可以很容易编写高质量、高性能的并发、异步程序的 新技术出现了,她就是:出自微软机器人工作室的CCR。
 
一、什么是CCR?
    CCR是Concurrency and Coordination Runtime的首字母缩写,她是微软机器人技术工作室(Microsoft Robitics Studio,简称MRS)的运行库之一,可以脱离MRS独立使用,运行在CLR2.0平台上。

二、CCR有什么用处?
    主要满足软件开发中对异步、并发、协调和错误处理的高效的、规范的、可扩展的处理需求;是目前.Net平台上对并发、异步软件开发模式的极大抽象成就。

三、为什么他比传统的并发、异步、多线程编程技术优越?
    1、简化了创建并发、异步、多线程的工作
    CCR对用户的任务是如何被执行的、用户任务包含哪些东西 和 在哪些资源上运行用户任务都做了抽象,并将 任务调度策略 和 负载均衡逻辑 从实现中分离出来,让用户不必自己编写这样的复杂框架,降低了编程的难度,也提高了编写出来程序的可读性。
    2、重新编写了一个不同于.Net框架的线程池,具有更优越的性能,且能够根据多核CPU做性能优化;
    3、更加容易学习
    CCR对并发、异步编程所作的抽象,是的并发、异步编程模式变得更加简单。CCR把用户要执行的任务,统一规划为委托传入Dispatcher调度器内,调度器会根据设定的任务调度策略和负载均衡逻辑 自动优化的、高性能的执行。
    用户要做的只是:编写好任务,定义好任务处理的数据结构,把要处理的数据丢进CCR队列。再也不用创建线程,再也不用为线程的资源互斥和争用烦恼,再也不用为如何优化代码以使用多核的CPU烦恼。
 
四、CCR的资料汇聚
    目前CCR的资料还相当少,因此主要还是看官方的资料:
    1、MSDN上的User Guide:
http://msdn.microsoft.com/en-us/library/bb905447.aspx
    2、在园子里找到一个上面的中译本:
http://www.cnblogs.com/ncindy/archive/2007/12/09/988566.html (附录有整理后的Word文档下载,方面大家打印成册阅读);
(Update1:)
    4、CCR的下载:CCR是微软机器人工作室内的一个运行库,并没有单独发布(但是微软已经声明:这个运行库是基于CLR2.0的,不依赖其他组件即可运行,声明见:http://blogs.msdn.com/msroboticsstudio/archive/2007/03/09/coordination-and-concurrency-runtime-can-be-used-for-anything.aspx )。
    因此若要下载这个CCR只能先下载、安装 Microsoft Robotics Studio (1.5),他的下载地址是:http://msdn.microsoft.com/zh-cn/robotics/aa731520(en-us).aspx (为了方便大家,我把CCR的组件,打包传来上来,下载地址在附录内)。
 
五、附录