异步会以多线程、异步I/O等形式运行。
给一个程序入口,让它处理完当前过程之后,把处理结果送到这个入口,然后执行另一段程序——俗称回调。回调一般使用 callback 这个名称
同步:如排队买票。指令执行(排队)时间过长,就会造成阻塞.
异步(多线程):如多窗口。多个异步流程之间相互独立,在不需要等待共享资源的情况下它们相互不会阻塞。内部仍然是同步的。
异步(I/O):如各部门资料汇总,找人去跑腿那资料,自己根据现有的写。启动异步程序,跑腿拿回来(插入事件消息),自己先完成手头这个部门的(完成当前事件循环),再用带回来的写(新的事件循环)
因IO处理比CPU慢,所以IO异步防止CPU闲置。IO完成,CPU用IO结果继续工作。
同步的逻辑:接受输入 ⇒ 处理 ⇒ 产生输出
异步的逻辑:接受输入 ⇒ 处理 ⇒ 启动下一步(如果有)
模块化思想在异步思维中是一个非常关键的思想。
具体为:分析代码的相关性,提炼函数,提取对象,在具有一定经验之后还需要掌握模块细化的粒度平衡。(设计模式和重构书籍)
转载于:https://blog.51cto.com/jinyudong/2074025