同步和异步的区别和联系以及一般在什么情况下使用它们

对于同步和异步而言,是所有程序员都应该的掌握的基本内容。由于同步和异步设计的知识面比较多,这里我仅仅进行一下简单的讲解。

其根本目的在于理解同步和异步的含义以及应用。至于更详细的信息可以上网查阅相关资料。

首先如果数据在线程间共享的话,那么就需要涉及到同步相关的内容了。例如正在写的数据可能被另外一个线程读到,而正在读的数据

可能被另外一个线程写到,这些数据是共享的数据。这时就必须进行同步存取操作,否者前后读取的数据就有可能不一致。

再存钱为例:

有一个共享的银行账号110,原来里面有余额1000元,现在有两个用户A,B都要进行取钱

首先A查询账号剩余1000元,A想要取出200元,A点击取款,系统正在处理取款事项...

紧接着在A取款的过程中B查询同一个账号还有1000元,B也想要取走200元。

A取完款后剩余800元,正常,而B取完款后理论上应该剩余600元,但是实际上还是剩余800元。

试问,110账号多余的这200块钱由谁出呢?

到这里应该明白同步的重要性了吧...如果同步搞不好,最后的200块钱就得由你出了~~哈哈哈~

其次对于异步而言,

当应用程序在对象上调用一个需要花费很长时间来执行的方法的时候,并且不需要让程序等待对方返回,这时就应该使用异步编程。

从效率上而言,以不变成更给力哦~~~(实现起来比较费劲~~)

时间: 2024-11-02 11:37:23

同步和异步的区别和联系以及一般在什么情况下使用它们的相关文章

ajax同步与异步的区别

jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除.而异步则这个AJAX代码运行中的时候其他代码一样可以运行. ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. 一.async值为true (异步) 当

Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题

Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载. Ajax 的最大的特点: 1. Ajax可以实现动态不刷新(局部刷新) 2. readyState 属性 状态 有5个可取值: 0 = 未初始化,1 = 启动, 2 = 发送,3 = 接收,4 = 完成 Ajax 同步和异步的区别: 1. 同步:提交请求 -> 等待服务

Web请求中同步与异步的区别

普通的B/S模式就是同步,而AJAX技术就是异步,当然XMLHttpReques有同步的选项. 同步:提交请求->等待服务器处理->处理完毕返回.这个期间客户端浏览器不能干任何事. 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕. 举个生动的例子吧: 同步就是你叫我去吃饭,我听到了就和你去吃饭:如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭. 异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭. 所以,要

同步和异步的区别(转)

答案一:1.异步传输 通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步.所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系.起始位对应于二进制值 0,以低电平表示,占用 1 位宽度.停止位对应于二进制值 1,以高电平表示,占用 1~2 位宽度.一个字符占用 5~8位,具体取决于数据所采用的字符集.例如,电报码字符为 5 位.ASCII码字符为 7 位

AJAX中同步和异步的区别和使用场景

在Jquery中ajax方法中async用于控制同步和异步,当async值为true时是异步请求,当async值为fase时是同步请求.ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才

同步与异步的区别

同步和异步的概念,同步是发送方发送消息后,需要等到接收方的回应,才会继续执行下去:而异步则是发送方在发送消息后,就会继续执行,而不管接收方是否回复消息. 当多线程访问资源时,需要保证在某个时刻只能被一个线程访问,这时需要使用同步,也就是对数据进行同步,其他线程必须等待,比如银行的转账系统,对数据库的保存操作等等,都是同步 为了避免短时间大量的数据库操作,就使用缓存机制,也就是消息队列.先将数据放入消息队列,然后再慢慢写入数据库.引入消息队列机制,虽然可以保证用户请求的快速响应,但是并没有使得我数

AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?

ajax是异步的 JavaScript 和 XML.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 交互流程: 1--启动  获取XMlHttpRequest对象             2--open 打开url通道,并设置异步传输              3--send 发送数据到服务器             4--服务器接受数据并处理,处理完成后返回结果              5--客户端接收

javascript同步和异步的区别与实现方式

题外话: “我最不喜欢的编程语言”排行榜第一名除了javascript别无他选 可惜的是在mobi项目的三个月除了javascript和SP就没写过其他什么.. 所以,迎难而上,该解决的一定要解决了 ------------------------------------------------------------------------------------------------------------------- javascript语言是单线程机制.所谓单线程就是按次序执行,执行

ajax 同步和异步的区别

举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕--------------------------------------------------------------------------------------------------------------------同步就是你叫我去吃饭,我听到了就和你去