文章关键字:|.NET|Erlang|风格|并行|编程|应用程序|开发|机器人|语言|
Erlang能够用来编写高度可伸缩的并行应用程序,其中经常会出现数以百万计的轻量级组件,这种类似于线程的组件被称之为actor。不幸的是,这往往需要您使用Erlang这种相对神秘的编程语言重写所有代码。不过我们也有其他选择,例如使用名不见经传的CCR平台来进行开发,该平台由.NET机器人部门开发。
作为一种基于Actor的语言,Erlang通过Actor模型能够实现高度并发性。在这个模型中,最基础的并行单元不是线程或纤程(fiber) ,而是一种更为轻量级的东西。作为Erlang中的“进程”,每个并行单元在一个32位系统中只占用大约1200字节的基础资源。与此相对的是,Windows操作系统中的每个线程默认会在栈上分配1MB空间,此外还需要额外的空间来作为簿记(Bookkeeping)和线程本地存储。由于非常轻量,一个应用程序轻松支持百万计的进程进行并发处理。
在任一时刻,大部分的进程处于空闲状态。当一个进程接受到了一条消息,运行平台将为其分配一个线程来应答这条消息。一条应答可能会创建一个新的进程,向其他进程发送消息,或者改变自身状态。一旦消息被处理之后,这个进程将会死亡,或者继续等待下一条消息。
消息处理系统实现了高端的并行性和高性能。每条消息都为异步发送,使得进程之间相互高度独立。平台能够通过消息来得知应该唤醒哪个进程。由于每个进程都能被任意的线程来处理,因此就可以大大减少耗费相对昂贵的上下文切换操作。
原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9303
分享到:
相关推荐
标题中的"C#与Erlang的群通信"指的是在编程领域中,使用C#和Erlang两种不同的编程语言进行集群或分布式系统间的通信。这两种语言各有特点,C#是微软开发的面向对象的编程语言,常用于Windows平台的开发,而Erlang则...
标题中的“改进erlang版的protobuf代码”指的是在Erlang编程语言中对Protocol Buffers(protobuf)进行了优化和改进的代码实现。Protocol Buffers是一种数据序列化协议,由Google开发,它允许开发者定义数据结构,...
Erlang的这个版本为开发者提供了在Windows平台上运行Erlang应用程序的能力,包括其强大的并行计算和分布式计算框架。"win64"表明这是专为64位操作系统设计的,能够充分利用现代计算机的多核处理器和大内存。 描述中...
2. **并发编程**:讲解Erlang中的进程、消息传递和并发模型,以及如何通过进程来实现异步和并行计算。 3. **OTP设计原则**:阐述OTP的核心理念,如行为模式的使用,以及如何遵循这些原则来设计健壮的系统。 4. **...
Actor模型是一种并发计算模型,最初由Erlang编程语言广泛采用,而后在多个平台得到了应用,其中包括Akka.NET。这个框架允许开发者构建高度可扩展、容错性强、性能优秀的分布式系统。 **Actor模型基础** Actor模型的...
其次,递归在函数式编程中占据重要地位,它简化了处理列表和其他数据结构的方法。此外,模式匹配和高阶函数极大地提高了代码的简洁性和效率。 在不同语言的比较中,我体会到Lisp的简洁性和灵活性,ML的类型安全,...
5. **F#** - 微软推出的函数式编程语言,结合了.NET框架,可用于开发Windows应用程序和Web服务,支持命令式、函数式和对象导向编程风格。 6. **Clojure** - Rich Hickey在2007年创建,Clojure运行在Java虚拟机上,...
3. rabbitmq-dotnet-client-3.4.2-dotnet-3.5.zip:这是一个.NET框架3.5版本的RabbitMQ客户端库,用于在.NET应用程序中与RabbitMQ服务器进行交互。开发人员可以使用这个库来创建生产者(发布消息)和消费者(接收...
7. **RabbitMQ客户端库**:RabbitMQ支持多种编程语言,如Java、Python、Ruby、.NET等,都有相应的客户端库,方便开发者在应用中集成RabbitMQ功能。 8. **RabbitMQ插件**:RabbitMQ还支持丰富的插件系统,可以扩展其...
在软件开发的世界中,Akka.NET是一个强大的工具,它引入了一种被称为"actor model"的并发编程模型。这个模型源自Erlang语言,由Lightbend公司推广并应用于.NET平台。"ActorsPlayground"项目提供了一个学习和实践Akka...
在Erlang中,“purity”通常指的是函数式编程的一个概念,即函数在给定相同输入的情况下始终返回相同输出,并且不产生任何副作用。 “Windows编程”标签暗示了文档可能也会涉及如何在Windows操作系统环境下进行...
索引元列表图形用户界面图形编程语言不可知论的算法和数据结构许可理论计算机科学操作系统数据库网络编译器设计编程范例并行编程正则表达式软件构架开源生态系统信息检索数据挖掘机器学习数学元胞自动机其他Web性能...
关于自家的云计算平台,微软最大的一个卖点就是开发人员可以使用.NET、Visual Studio和其它编程工具来编写Azure应用程序。不过这并不是事情的全部,微软研究人员正在研发下一代云计算编程模式和相关工具,根据最新...
RabbitMQ由Erlang编程语言开发,因其高可用性、稳定性和可扩展性而备受推崇。 **一、RabbitMQ的核心概念** 1. **消息(Message)**:在RabbitMQ中,消息是通过网络传输的数据单元,包含了要传递的信息。消息是无状态...
Erlang 是 RabbitMQ 的基础编程语言,因此在安装 RabbitMQ 之前,我们需要先安装 OTP 平台。otp_win64_21.2.exe 是 OTP 的 Windows 64 位版本的安装程序,它为 RabbitMQ 提供必要的运行环境。 **安装 OTP** 1. 首先...
在软件开发领域,选择合适的编程语言是至关重要的。软件语言分类是一个广泛的议题,涉及到不同的应用场景、性能需求以及开发效率等因素。以下是对这个主题的详细探讨: 1. **基础分类**: - **编译型语言**:如C、...
这个项目旨在展示如何在C#(CSharp)编程语言中有效地运用Actor模型来设计和实现分布式系统,尤其是对于服务端API的开发。 Actor模型是一种并发计算模型,由Erlang和Akka等框架广泛采用,现在Orleans也提供了对它的...
1. **环境准备**:通常需要Erlang环境,因为RabbitMQ是用Erlang编写的。 2. **安装RabbitMQ**:通过官方网站下载安装包或使用包管理器(如apt-get或yum)安装。 3. **启动与管理**:使用`rabbitmqctl`命令行工具进行...