北大青鸟大学城告诉你那些javascript

北大青鸟大学城校区logo 北大青鸟大学城校区
招生简章校园环境师资力量就业明星招生问答软件工程师北京大学学历学员项目联系我们 报名通道

免费在线咨询通道>>

免费在线报名通道>>

北大青鸟报名电话
当前位置:北大青鸟 > IT培训 > 软件开发 >

北大青鸟大学城告诉你那些javascript

标签:   分类:软件开发

异步:一个请求发起后不必等待结果,继续执行下一个请求。当请求执行完成后,通过状态,通知,回调通知。
同步:一个请求完成后才能进行下一个请求。
并发:一段时间内多个程序处于开始到结束之间。
以jquery的ajax来解释同步和异步:
熟悉前端的同学都知道ajax可以配置为异步和同步,那么javascript设计为单线程的模式下真的存在异步吗?

  其实javascript引擎是单线程的,但是不代表浏览器是单线程的,除了javascript引擎线程之外,浏览器还存在http请求线程,定时器线程,轮询线程。当发起ajax请求时浏览器会建立一个http线程去执行,而javascript引擎线程则继续执行列队里边的事件,当http请求完成时,http线程会在javascript执行列队里边加入回调函数等待执行。这就是ajax异步的原因,同步则会将javascript引擎线程暂时挂起,等待http线程结束。

  以用户访问网站来解释并发:
当多个用户同时访问网站时,这时服务端一次只处理一个请求的话,那么用户很多的话,那得等多久。这时就要用到多线程了,多个程序同时处理请求这样就快的多了。多个程序同时执行的话就是上面所说的并发了,这时就有可能出现资源竞争的问题,就得考虑线程同步问题了。
资源竞争:包括同一个数据库内的某些数据竞争,或者同一个实例的内存竞争。

  那为什么会出现资源竞争呢?
内存中有一个代码区,多个程序同时执行代码区的某个函数时,这时要么竞争数据库里边某些数据,要么就是竞争内存中的某些数据。
当遇到存取款和付款时就会有问题,那要怎么解决这个问题呢?

  当某位同学去买东西时,他朋友刚好给他打款时,这时他们两同时竞争数据库的余额那笔数据。这时同一时间只能允许一个操作去修改这比数据。在执行修改金额的方法时,打款时不允许扣款的线程跑进来,或者在扣款的时候不允许打款的线程跑进来。这时就要让这两个线程同步。

北大青鸟大学城校区地址:北京市昌平区沙河沙阳路18号,北京科技职业学院内。
学校官网:http://www.91accp.com    
招生电话:010-80146691     余老师:15910633011
乘车路线:北京地铁13号线到龙泽站下车,然后乘坐公交车519路到老牛湾下车就到。
我们欢迎你的随时咨询!

若有疑问请拨打北大青鸟咨询热线:010-80146691或点击免费在线咨询!
  • xml地图 网站地图 招生简章 合作企业 学员项目 联系我们
  • 关闭窗口