同步和异步

来源:互联网 发布:想学淘宝美工如何学 编辑:程序博客网 时间:2024/05/22 15:48

同步与异步: 


举个例子:普通B/S模式(同步)AJAX技术(异步) 
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 
异步: 提交请求->无需等待,继续执行->请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 

ajax.open方法中,第3个参数是设同步或者异步。prototype等js类库一般都默认为异步,即设为true。先说下同步的情况 下,js会等待请求返回,获取status。不需要onreadystatechange事件处理函数。而异步则需要继续往下执行,不需要一直等待请求返回,只需要设置 onreadystatechange事件处理,且值为4再正确处理下面的内容。 

同步执行模式: 

所谓同步执行模式,是指语句在同步执行模式下,将始终保持对程序流的控制,直至 程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。 
众所周知,应用程序要从一个大表中删除所有的记录将是非常耗时的,如果应用程序 采用的是单线程(thread)同步执行方式,某次删除工作很可能耽误其他重要工作的完 成。如果应用程序等待的是远程任务,那么远程服务器失败或网络故障或一些无法预 知的情况都可能使应用程序无限期地等下去,这是同步执行最大的缺陷。 
但是同步执行模式可以简化程序编制的复杂性。程序员可以不用过多地了解比较复杂 的ODBC 2.0 API 的使用,而只需使用 ODBC 的同步执行模式或使用数据控制项和数据库对象变量来编写应用程序,可以提高开发效率,但程序运行速度比不上异步执行 模式的速度。 


异步执行模式: 
所谓异步执行模式,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查 询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。 异步执行方式使应用程序能摆 脱单个任务的牵制,提高了灵活性和应用程序的执行 效率。但异步执行模式也存在一些问题,如它增加了 编程的复杂性,特别是编写互用性(interoperable)要求较高 的程序。 
在负荷很重的客户/服务器系 统中,适宜采用异步执行模式。在这种环境下,时间 延迟频繁且漫长,相比之下异步执行的开销微不足 道。但是,如果应用运行的环境比较复杂,则必须建 立一套完整的机制,周期性地检查函数执行的状态, 以决定下一步执行方案。进行周期的检查可以有多种方法,如在 应用中设置计时器并处理WM_TIMER信息等。 
虽然使用异步执行模式在编程 序时十分复杂,但可以实现多任务并行执行,使执行的效率大大提高。 
0 0
原创粉丝点击