javascript: 进程与线程

前言: 进程与进程之前是相互隔离的(数据不共享),每一个程序可以有多个进程,一个进程里面也会有多个线程,进程与进程之间 相互制约共存,线程与线程之间进行辅助工作

一. 关于进程

  1. 在我们的设备当中每一个运行的程序都会有至少一个进程,每打开一个程序,电脑的cpu就会开辟至少一个进程,分配一块内存空间,进程与进程之间是相互隔离的,这样做的目的,是为了避免进程间相互操作数据的现象发生.

  2.cpu: 负责计算机的数据计算服务,程序在打开的时候会copy一份到我们的内存条里面运行,也就是我们的运行内存,电脑的N个盘是存放程序的 而数据的计算是由我们的cpu进行计算. 

 3.安装一个程序在D盘最终显示在程序在c盘,关于这个问题是因为c盘是系统盘,页脚启动盘,所有软件的启动程序都是放在c盘下面进行启动,不这么做,程序运行不了

 (1)移动端:在手机的设置里面查看运行的程序

 (2)pc端: 在任务管理器里面查看运行的程序

二.关于线程

1.讲线程就要提到浏览器内核,主要分为:

 (1)渲染引擎(GUI线程)

  负责渲染html节点树,png,xml等等

 (2)js引擎(js引擎线程)主线程

 负责执行js,当js主线程同步代码执行完毕以后,等待事件队列(Task queue)里面的事件进行触发

注意点:

每一个进程里面都用于至少一个主线程,其他线程辅助主线程工作,主线程是产生其他线程的线程,而且GUI线程和js线程是互斥的,当js引擎执行的时候GUI线程会处于pending状态.

2.​​​​​​​其他线程

 (1)异步请求线程

  用来发送异步请求,

 (2)定时器线程

  执行定时器进行计算setTimeout,setInterval,到点后会放入事件队列里面

 (3)事件触发线程

触发异步回调,定时器回的回调,异步请求回来后的回调,也可能来自鼠标的点击按钮等等,所有的异步处理,该触发的时候都会存在事件触发线程的任务队列(Task queue)里面的最下面,等待js主线程空闲时去执行,

 注意点:

   js引擎线程为主线程而且是单线程,主线程上的代码先由js引擎先执行,其他线程(来自浏览器)等待同步代码执行完,在由js引擎去执行. 即:同步先,异步后

到此就结束了! 总结一下~:

1.js是单线程语言

2.js引擎为执行js的主线程,主线程负责触发其他线程,任何时候都只有一个js主线程执行js

3.js主线程在执行的时候会先执行自己线程上的同步代码

4.js线程与GUI线程为互斥关系,当js线程在执行的时候,GUI线程会是pending status

5.定时器,异步请求,鼠标点击事件等等,由浏览器的其他线程协助处理,等待js主线程同步任务执行完空闲时,再去执行已经完成的异步js代码

6.浏览器可以是多进程的也可以是单进程的

7.进程之间互相隔离,互相制约,线程一直相互辅助工作.

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值