浏览器常驻线程

                                                                浏览器常驻线程

在学习js过程中一定会与浏览器打交道,因此了解了浏览器常驻线程与其用途,会在很大的程度上优化程序,使程序运行更加的高效。在下面就介绍以下的浏览器常驻线程

1.js引擎线程,其作用解释执行js代码,用户输入,网络请求

2.gui线程,其作用是绘制用户界面,与js主线程互斥

3.http网络请求线程,其作用是处理用户的get,post请求,等返回结果后将回调函数推进任务队列当中

4.定时触发器线程,其作用是setTimeout setInterval等待时间结束后把执行函数推入到任务队列之中

5.浏览器实践处理线程,其作用是将click mouse等交互事件发生后将这些事件放入在事件队列之中

在上面所说的几个常驻线程中首先执行的是js引擎线程,其余的线程就是一个辅助的过程。这就是为上面js是单线程异步操作的语言。gui线程与js引擎线程是互斥的,这句话所代表的意思是,就是当js引擎线程执行完之后在进行gui线程。如果js引擎线程是一个死循环(loop)那么就不会去执行gui线程

js是一个单线程异步的语言,这句话怎样去理解呢?下面就是其解释原因。

js完成要去完成两个执行过程,首先是同步任务过程,然后是异步任务过程。整个的js执行机制就是任务进入执行栈之中,然后再来判定该任务是同步任务还是异步任务。如果是同步任务就先执行,在同步任务执行的时候执行的机制是栈机制,满足先进后出,当同步任务执行完之后,再来执行异步任务。对于异步任务,先将任务放在Event table(事件表)当中然后去注册回调函数,然后再将这个回调函数放入Event queue(事件队列)当中去进行执行,其满足的机制是队列机制。当两个部分执行完之后就读出任务队列中的结果

什么是同步任务,什么是异步任务?

像axios  setTimeout等就是异步任务,其他大多数都是同步任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值