消息传递

编辑
本词条由“匿名用户” 建档。

在计算机科学中,消息传递是一种在计算机上调用行为(即运行程序)的技术。调用程序向进程(可能是参与者或对象)发送消息,并依赖于该进程及其支持的基础结构,然后选择并运行一些适当的代码。消息传递不同于传统编程,在传统编程中,进程、子例程或函数直接通过名称调用。消息传递是某些并发模型和面向对象编程的关键。 消息传递在现代计算机软件中无处不在。它被用作组成程序的对象相互协作的一种方式,以及运行在不同计算机(...

消息传递

编辑

计算机科学中,消息传递是一种在计算机上调用行为(即运行程序)的技术。 调用程序向进程(可能是参与者或对象)发送消息,并依赖于该进程及其支持的基础结构,然后选择并运行一些适当的代码。 消息传递不同于传统编程,在传统编程中,进程、子例程或函数直接通过名称调用。 消息传递是某些并发模型和面向对象编程的关键。

消息传递在现代计算机软件中无处不在。 它被用作组成程序的对象相互协作的一种方式,以及运行在不同计算机(例如 Internet)上的对象和系统进行交互的一种方式。 消息传递可以通过各种机制实现,包括渠道。

概览

编辑

消息传递是一种在计算机上调用行为(即运行程序)的技术。 与通过名称调用程序的传统技术相比,消息传递使用对象模型来区分通用功能和特定实现。 调用程序发送消息并依赖对象来选择和执行适当的代码。 使用中间层的理由基本上分为两类:封装和分发。

封装是指软件对象应该能够在不知道或不关心这些服务是如何实现的情况下调用其他对象的服务。 封装可以减少代码逻辑量,使系统更易于维护。 例如,与其使用 IF-THEN 语句来确定调用哪个子例程或函数,开发人员可以只向对象发送消息,对象将根据其类型选择适当的代码。

如何使用它的xxx个例子是在计算机图形学领域。 操作图形对象涉及各种复杂性。 例如,简单地使用正确的公式来计算封闭形状的面积会根据形状是三角形、矩形、椭圆形还是圆形而有所不同。 在传统的计算机编程中,这会导致长长的 IF-THEN 语句测试形状是什么类型的对象并调用适当的代码。 面向对象的处理方法是定义一个名为 Shape 的类,它具有 Rectangle 和 Ellipse 等子类(它们又具有 Square 和 Circle 的子类),然后简单地向任何 Shape 发送消息,要求它计算其面积。 然后,每个 Shape 对象将使用适合该类型对象的公式调用子类的方法。

分布式消息传递为开发人员提供了一个体系结构层,该层提供公共服务来构建由在不同位置和不同时间在不同计算机上运行的子系统组成的系统。 当分布式对象发送消息时,消息传递层可以处理以下问题:

  • 在消息来源的不同位置使用不同的操作系统编程语言查找进程。
  • 如果处理消息的适当对象当前未运行,则将消息保存在队列中,然后在该对象可用时调用消息。 此外,如果需要,存储结果,直到发送对象准备好接收它。
  • 控制分布式事务的各种事务要求,例如 原子性、一致性、隔离性、持久性 (ACID) 测试数据

同步与异步消息传递

编辑

同步消息传递

同步消息传递发生在同时运行的对象之间。 它被面向对象的编程语言使用,例如 Java 和 Smalltalk。

同步消息类似于同步函数调用; 正如函数调用者等待函数完成一样,发送进程等待接收进程完成。 这会使某些应用程序无法进行同步通信。 例如,大型分布式系统的性能可能不够好,无法使用。 如此庞大的分布式系统可能需要在其某些子系统因维护等原因而停机时运行。

消息传递

想象一下,一个繁忙的商务办公室有 100 台台式计算机,它们使用同步消息传递相互发送电子邮件。 一名员工关闭计算机可能会导致其他 99 台计算机死机,直到该员工重新打开计算机来处理一封电子邮件。

异步消息传递

通过异步消息传递,当请求对象发送消息时,接收对象可能已关闭或忙碌。 继续函数调用的类比,它就像一个立即返回的函数调用,不需要等待被调用的函数完成。 消息被发送到一个队列,在那里它们被存储,直到接收进程请求它们。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/195980/

(1)
词条目录
  1. 消息传递
  2. 概览
  3. 同步与异步消息传递
  4. 同步消息传递
  5. 异步消息传递

轻触这里

关闭目录

目录