异步编程的本质:怎么处理异步请求(事件)与响应的关系
2023-09-11 14:18:44 时间
异步编程
Ebay技术架构倡导到处异步,异步能够提高系统的可伸缩性,有一种误解:认为异步就会慢于同步,其实异步后才能并行并发,利用多CPU的并行并发处理要比同步串联处理无疑性能要提升多。 异步的目的是从设计上解耦,从执行顺序上进行切分,将串行变成并行。
传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回,异步编程就是要重新考虑是否需要响应的问题,也就是缩小需要响应的地方。因为越快获得响应,就是越同步化,顺序化,事务化,性能差化。
异步编程通常是通过fire and forget方式实现,发射事件后即忘记,做别的事情了,无需立即等待刚才发射的响应结果了。(发射事件的地方称为生产者,而将在另外一个地方响应事件的处理者称为消费者)
关键问题是我们为什么要等待响应呢?因为希望基于响应再继续执行一些逻辑,换一个思路,将这些逻辑移植到事件的消费者那里去做,而不是在当前生产者实现,这其实也是reactive编程的一个特点。
https://www.jdon.com/asynchronous.html
jdon
相关文章
- C#里事件和委托有什么区别啊
- select下拉框选择触发事件
- 【Vue】通过text按键执行事件,并且获取到按键的名称和编码
- Android Button响应事件两种实现方法及优劣比较
- Delphi TListview自绘某列添加图片按钮并实现点击事件响应
- jquery on事件jquery on实现绑定多个事件
- JavaScript中事件捕获(Event capturing)-------------->由外向内,事件冒泡(Event bubblin)---------->由内向外
- Qt中基类widget的各个事件函数中包含了ignore()的调用
- Android基础总结(一)项目结构,事件
- 鸿蒙开发之如何响应Button点击事件(HarmonyOS鸿蒙开发基础知识)
- Untiy-委托[delegate]和事件[event]详解和区别(一)
- js如何给ul的所有的li绑定事件,打印他们的索引
- android学习之4种点击事件的响应方式
- sql server交换事件引起的死锁
- 3D Slicer Modify Mouse Event 修改3D Slicer中的鼠标响应事件