同步和异步为程序架构的顶层概念

最快的并行,应该是减少等待或无效操作,以及充分利用电脑的性能!

在减少等待这个阻点,我们使用到最多的是异步设计了。关于异步设计,在这几年的工作中,也遇到一些编程麻烦,就是与同步和异步问题悉悉相关!

如果程序或模块在最开始被设计为同步的,而在后期随着数据量和并发数的增多,程序遭遇到线程耗尽问题。问题分析清楚后,想减少线程阻塞,需要把程序变更为异步特性。在这个时间,您往往会发现在需要被处理异步的阻点上,真实中的代码实在是嵌套太深了。。。。。。异步处理恢复运行时所需要的状态数据,已经比较难以保存了,很难做异步了!

所以,总结来看,编程中的同步和异步问题,在关于流程和程序结构上,往往是决定性;是需要在最初设计就应该被考虑到的顶层概念,不然后期就积重难返了!

同时,也就在前一段时间,和一个大牛在讨论某问题的时候,他给我给反问一个问题:为什么某某个网元可以处理地很快呢? 关于这个问题,在工作的几年里,熟视无睹,也还真没有深入想过。在思考了一段时间,就意识到,它处理的很快,在除去硬件架构的优势外,其实就是基于异步设计出来的效果。它在软件架构上为内存逻辑地址平坦的JOB调度机制,避免上下文切换所带来的损耗,而在具体运行中就是大量逻辑处理、访存操作和在异步流程的边缘进行的Socket数据发送操作。Socket发送操作几乎是它运行时最大的时间等待了!再从稍微高一点的理论层来看,它的运转机制,几乎上已经是一个与网络通信相关的图灵机,最快的处理速度了!

对此问题再深入细想下来,这几年的网络通信编程经历中,涉及到的流程、状态机、定时器,只是异步编程具体化后的形现,常用、且重要:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值