毋庸质疑“多核时代”的到来,随着4核CPU成为主流配置,以后X核都只是时间问题。既然多核了,那么我们的程序还能像以前单核时代那样,随着硬件性能的提升而轻易的、低成本的提升吗?
若是你的程序仍然不是并发的、异步的、多线程的,那么答案显然是:不能。
多核时代的到来,让我们的程序不得不走向并发、异步、多任务的方向,现有的编程技术中,对并发、异步编程模式的支持虽然已经做了很多的工作,但是不可否认,在这个领域,仍然存在:学习成本高,调试困难,高质量代码编写困难,错误处理复杂等等问题,这也是的很多人都对并发异步编程退避三舍的主要原因。
现在,一个能够快速学会,容易上手,可以很容易编写高质量、高性能的并发、异步程序的 新技术出现了,她就是:出自微软机器人工作室的CCR。
一、什么是CCR?
CCR是Concurrency and Coordination Runtime的首字母缩写,她是微软机器人技术工作室(Microsoft Robitics Studio,简称MRS)的运行库之一,可以脱离MRS独立使用,运行在CLR2.0平台上。
二、CCR有什么用处?
主要满足软件开发中对异步、并发、协调和错误处理的高效的、规范的、可扩展的处理需求;是目前.Net平台上对并发、异步软件开发模式的极大抽象成就。
三、为什么他比传统的并发、异步、多线程编程技术优越?
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文档下载,方面大家打印成册阅读);
目前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的组件,打包传来上来,下载地址在附录内)。
五、附录
我的签名:来自序海的呼唤,期待久违的飞扬
熊掌©原创
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端