NCindy

.net平台上的高性能网络程序开发框架

CCR API概览

原文链接

CCR实现有三个主要的功能类别:

  1. Port和PortSet队列原语,参考《CCR Ports and PortSets》。Port类是一个FIFO队列(队列中的元素可以是任何有效的CLR类型),大多数情况下也是接收者(被仲裁器(Arbiter)看守(guarded)的用户代码)队列。
  2. 协调原语,也被称为仲裁器(Arbiter),参考《协调原语Coordination Primitives》。这些类用来在当特定情况出现时执行用户代码(用户代码通常是某个方法的delegate)。这个原语可以被嵌套,程序员也可以扩展它。
  3. Dispatcher、DispatcherQueue和Task原语,参考《任务调度》。CCR使用这些类来抽象用户的任务是如何被执行的、用户任务包含哪些东西和在哪些资源上运行用户任务将。并用这些类将调度和负载均衡逻辑从其余的实现中分离出来。CCR允许程序员拥有多样的,完全隔离的操作系统线程池,这些线程池抽象了所有在它们背后线程的概念,从而避免了单一的、处理所有执行的资源,比如CLR线程池。在大多数情况下,几百个软件组件可以共享一个单独的Dispatcher资源,这个Dispatcher资源可以使用很少的几个OS线程对几百万任务进行负载均衡。DispatcherQueue类型是唯一与Dispatcher类型进行交互的方式,每个dispatcher的多个队列允许公平调度策略。

posted on 2007-12-10 12:31  iceboundrock  阅读(1037)  评论(0编辑  收藏  举报

导航