建设彩票网站合法吗,昆明网站开发推广,简约 网站模板,下载站用什么网站系统首先知道同步异步与阻塞非阻塞不是一个层次的概念 “阻塞”与非阻塞与同步与“异步不能简单的从字面理解#xff0c;提供一个从分布式系统角度的回答。 1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous…首先知道同步异步与阻塞非阻塞不是一个层次的概念 “阻塞”与非阻塞与同步与“异步不能简单的从字面理解提供一个从分布式系统角度的回答。 1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步就是在发出一个*调用*时在没有得到结果之前该*调用*就不返回。但是一旦调用返回就得到返回值了。换句话说就是由*调用者*主动等待这个*调用*的结果。 而异步则是相反*调用*在发出之后这个调用就直接返回了所以没有返回结果。换句话说当一个异步过程调用发出后调用者不会立刻得到结果。而是在*调用*发出后*被调用者*通过状态、通知来通知调用者或通过回调函数处理这个调用。 例1 之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载页面出去假死状态当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除而异步则这个AJAX代码运行中的时候其他代码一样可以运行。 jquery的async:false,这个属性 默认是true异步false同步。 $.ajax({ type: post, url: path, cache:false, async:false, dataType: ($.browser.msie) ? text : xml, success: function(xmlobj){ } }); 有了这个属性可以相对的减少代码运行书序问题但是如果用的太多页面假死次数太多。这样反而导致用户体验不佳~ 根据$.Ajax()中 async 和success的官方的解释 async默认的设置值为true这种情况为异步方式就是说当ajax发送请求后在等待server端返回的这个过程中前台会继续 执行ajax块后面的脚本直到server端返回正确的结果才会去执行success也就是说这时候执行的是两个线程ajax块发出请求后一个线程 和ajax块后面的脚本另一个线程例 $.ajax({ type:POST, url:Venue.aspx?actinit, dataType:html, success:function(result){ //function1() f1(); f2(); } failure:function (result) { alert(Failed); }, } function2(); 在上例中当ajax块发出请求后他将停留function1()等待server端的返回但同时在这个等待过程中前台会去执行function2(),也就是说在这个时候出现两个线程我们这里暂且说为function1() 和function2()。 当把asyn设为false时这时ajax的请求时同步的也就是说这个时候ajax块发出请求后他会等待在function1这个地方不会去执行function2()知道function1()部分执行完毕 例2你打电话问书店老板有没有《分布式系统》这本书如果是同步通信机制书店老板会说你稍等”我查一下然后开始查啊查等查好了可能是5秒也可能是一天告诉你结果返回结果。而异步通信机制书店老板直接告诉你我查一下啊查好了打电话给你然后直接挂电话了不返回结果。然后查好了他会主动打电话给你。在这里老板通过“回电”这种方式来回调。 2. 阻塞与非阻塞 阻塞和非阻塞关注的是程序在等待调用结果消息返回值时的状态. 阻塞调用是指调用结果返回之前当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞调用指在不能立刻得到结果之前该调用不会阻塞当前线程。 还是上面的例子你打电话问书店老板有没有《分布式系统》这本书你如果是阻塞式调用你会一直把自己“挂起”直到得到这本书有没有的结果如果是非阻塞式调用你不管老板有没有告诉你你自己先一边去玩了 当然你也要偶尔过几分钟check一下老板有没有返回结果。在这里阻塞与非阻塞与是否同步异步无关。跟老板通过什么方式回答你结果无关。 转自:https://www.zhihu.com/question/19732473/answer/20851256 作者严肃https://www.cnblogs.com/cai170221/p/7065096.html 转载于:https://www.cnblogs.com/xdyixia/p/9260187.html