美文网首页
单线程、任务队列轻解读

单线程、任务队列轻解读

作者: 清苑折纸 | 来源:发表于2019-05-25 22:49 被阅读0次
    • 通常在程序中事件都是顺序执行的,同一时刻只能发生一件事情,如果函数之间有依赖关系,则依赖函数必须等待被依赖函数执行完成之后才能开始执行。

    • JS中的任务是分为同步任务和异步任务两种的。

    • 同步任务是在主线程上排队一个一个去执行的任务,异步任务则是将任务加入到任务队列,在主线程上的任务执行完毕之后再处理的。

    • 在JS当中即使浏览器有多核也依然是单线程的,即同一时刻只能处理一件事情,称为主线程

    Task A --> Task B -->Task C
    

    setTimeout和setInterval是属于典型的异步函数


    image.png

    在上例中主线程的任务就是setTimeout之外的console.log()函数。函数执行时遇到setTimeout会将其加入到任务队列等待主线程上的任务执行完成之后再执行。但这可能会造成阻塞,由于单线程任务的特性,必须等待前一个任务执行完成之后才执行。如下例:


    image.png

    相关文章

      网友评论

          本文标题:单线程、任务队列轻解读

          本文链接:https://www.haomeiwen.com/subject/wzhttctx.html