专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

请问一下异步编程的原理

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
请教一下异步编程的原理
刚刚接触了异步编程,思维还比较混乱。有这么一个例子:
一下是同步遍历一个数组的写法:
var len = arr.length,
  i = 0;
  for (; i < len; ++i) {
     arr[i] = sync(arr[i]);
  }
// All array items have processed.

下面是对应的异步遍历数组的写法:
(function next(i, len, callback) {
    if (i < len) {
        async(arr[i], function (value) {
            arr[i] = value;
            next(i + 1, len, callback);
       });
   } else {
       callback();
     }
  }(0, arr.length, function () {
// All array items have processed.
}));

这个异步遍历数组的流程我是大概了解了。但我想知道为什么这么写它就是异步的?这只是个例子,并没有async这个方法,是不是因为async这个方法内部来决定只是个异步的方法
------解决方案--------------------
计算机看到async这个关键字,就会将其锁定的代码块加锁,并且当有别的线程想要来执行时,计算机会判断当前是否有别的线程在执行。如果有,则别的线程将没有权利执行这个代码块。这就是同步的含义。
记住:同步的本质目的是为了 不同步!
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: