[JS ] JS单线程的理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iOSTianNan/article/details/88837793

为什么javascript是单线程?

对于js单线程的理解, 可以先看上面的帖子, 我觉得讲的挺好的, 但是理解这东西还是要看个人, 我怕我理解歪了,索性也画一个流程图解,用自己的方式去尝试理解js单线程,也许有错误或则不完善的地方,还请斧正

在这里插入图片描述

1.js执行的时候,会在一个主线程中顺序执行同步任务,
2.遇到异步(耗时)任务,我的理解是任务会被挂起,然后继续执行下一个同步任务,
3.被挂起的异步任务(io任务或则网络任务)自己等待返回结果,
4.有了返回结果之后,会生成一个事件丢进 ‘任务队列’ 中,
5.等主线程已知的任务全部走完, js回去 ‘任务队列’ 中自动读取第一个被记录的事件(或则说是某个异步执行要执行的回调函数),然后把这个 事件扔回 js主线程执行
6.执行完成以后, 主线程又处于任务全部走完的状态, 这个时候再 回去 ‘任务队列’ 中读取其中第一个 事件,再按照上面的流程继续执行
7.直到 ‘任务队列’ 被清空, 主线程所有任务全部结束
8.执行完成所有任务,直到主线程被加入了新的同步/异步任务

不知道这样描述正不正确, 有错误请多多指出

猜你喜欢

转载自blog.csdn.net/iOSTianNan/article/details/88837793