码迷,mamicode.com
首页 > 其他好文 > 详细

架构笔记[一]:同步与异步

时间:2016-06-29 20:23:35      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

第一阶段:同步

  所有操作顺序执行,调用函数执行完后再进行下一步操作。

第二阶段:完全异步

  问题:同步操作中,有些函数执行比较耗时,导致程序整体可用性的降低,用户体验差。

  解决:通过异步方式,不等待函数返回即执行下一步。等到函数执行完成后通过某些机制触发,使相应的结果的到继续处理。

第三阶段:部分异步

  问题:在完全异步中,会存在有些操作可能耗费时间过长,或异步函数在执行中出现错误导致不能正常返回等情况。使得调用者白白耗费某些异步触发机制的资源,尤其是在大型软件中,会导致服务器性能浪费,性能降低。

  解决:通过部分异步方式,设定异步操作等待的时间,如果超时则返回错误,释放异步触发机制的资源。

  举例:WCF

======================================

异步机制

思想:

  另启动一个线程,使主线程(通常是UI线程不受阻塞),通过线程间通信通知结果。

.NET中:

  分类:

    APM模式(Asynchronous Programing Model)     其他         

    EAP模式(Event-based Asynchronous Pattern)  事件驱动  

    对比  http://www.cnblogs.com/dctit/archive/2013/01/13/2853853.html 

  举例:

    APM:  beginXXX / endXXX

    EAP:  XXXAsync / XXXComplete 以及EventArgs / EventHandler 

Java中:

  AsyncTask;以及其他通过线程方式实现异步 

  MessageQueue + Looper  + Handler

  NIO(New IO) Selector+SocketChannel

 

架构笔记[一]:同步与异步

标签:

原文地址:http://www.cnblogs.com/the-owl/p/5627913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!