javaScript中的采用异步方式的总时间和采用同步的总时间是什么关系?怎么评判的?

新手上路,请多包涵

1、javaScript中的采用异步方式的总时间和采用同步的总时间是什么关系?怎么评判的?
2、还有就是异步的时候是先执行同步任务,异步任务又是谁在执行,为什么等到回掉执行的时候,异步任务已经执行完成了?是由于浏览器多线程的原因吗?

阅读 1.4k
1 个回答

第一点总时间关系
排除一些影响因素,对于特定的一组任务来讲,异步话费总时间是这些任务中耗时最长的哪一个任务的时间。同步是所有任务花费时间的累加和。

第二个问题
在浏览器引擎中,单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个,这也是我们常说的js是单线程的原因。
但是呢,在上述线程外,还存在其他的线程,比如:处理AJAX请求的线程、处理DOM事件的线程、定时器线程等等,也有人叫做工作线程。

工作流程是,js线程接受到一个异步ajax任务,然后把这个ajax任务交给ajax线程,ajax线程接收到之后回复js线程说收到了马上处理,之后处理完成之后,再通知js线程说处理完毕了,js线程接收到通知之后,再调用之前保存的队列回调函数。
抱歉,手机不好打字

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题