同步和异步详解

同步和异步

发送, 接收和回应操作可能是同步或者异步的,一项同步操作阻塞后面的流程知道这个操作结束。
一个异步的操作是非阻塞的,只是初始化操作。 调用者可以通过其他机制来发现操作的完成请款。

同步操作需要理解什么是操作完成。 在远程任务中,发送方和接收方操作在信息发送给接收者收到后结束,在远程调用的情况下,发送,接收和回复完成判断标准是确定接收方时间偶到回应,例如有一个返回值。
另外,发送和接收结束在流程结束。 在流程执行过程中,发送方和接收方都在一个状态。

注意:同步和异步意味着阻塞和非阻塞,反之并不适用,并不是所有的阻塞是同步,并不是所有的非阻塞是异步。例如,在接收机器接收到消息之前阻塞的发送是阻塞的,但不是同步的,因为接收进程可能没有接收到消息。

异步消息传递允许更多的并发性。 因为一个进程不阻塞,在消息传递的过程中还可以做些其他的计算。对于接收方,这意味着可以同时接收不同端口的消息。在同步系统中,这种并行性可以通过为每个并发操作创建单独的进程来实现,但是这种方法需要额外的进程管理成本。
这一费用对于低wps来说是可以承受的,而对于高wps来说则是不可承受的

异步消息传递引入了几个问题。 如果消息不能发送怎么办? 发送放也许等不到确认,永远也收不到回复报错信息。 同理,需要一种机制去提醒异步接收者一个消息已经到达了。操作调用者可以学习通过轮询获得完成或者报错的信息,
获取软件中断,或者使用一个特殊的同步等待调用显式地等待稍后完成,如果以后需要通知应用程序有关操作,异步操作需要返回调用/事务id。在通知时,此id将被放置在某个全局位置,或作为参数传递给处理程序或等待调用

与异步消息传递相关的另一个问题与缓冲有关。如果异步发送的消息被缓冲在操作系统管理的空间中,那么一个进程可能会用大量消息冲击系统来填补这个空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值