网络编程学习_设计模式_半同步半异步模式

设计模式大部分都是扯蛋的,真正有用的不多,广泛应用的更少寥寥无几,半同步半异步(Half-Sync/Half-Async)正是其中之一

一: 同步和异步的问题

同步: 编码简单,逻辑清晰, 但效率低

异步: 效率高,但结构复杂,需处理各种时序和竞争问题

对于网络通信来说异步可以避免大量的阻塞,提高效率, 因此高性能服务器基本都是异步的. 但对于业务处理来说异步并没有明显性能优势,反而会导致编码复杂.

于是Half-Sync/Half-Async便横空出世来解决个问题了


二, 异步层/ 同步层和队列层

半同步半异步模式将底层的网络通讯用异步实现, 上层的逻辑处理用同步实现,中间通过一个队列来连接.

它的应用非常广泛,别的不说,我们的操作系统本身就是一个Half-Sync/Half-Async模式:


三, 实际编程应用

这个模式在实际编码中也有广泛应用, 以搜索引擎中cache和query的通信为例, 其实就是一个Half-Sync/Half-Async 的例子. 其最显著的特征就是:

异步接收-->放入队列-->同步处理 或 同步处理-->放入队列-->异步发送





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值