概述
前言: 进程与进程之前是相互隔离的(数据不共享),每一个程序可以有多个进程,一个进程里面也会有多个线程,进程与进程之间 相互制约共存,线程与线程之间进行辅助工作
一. 关于进程
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.进程之间互相隔离,互相制约,线程一直相互辅助工作.
最后
以上就是大胆麦片为你收集整理的javascript: 进程与线程的全部内容,希望文章能够帮你解决javascript: 进程与线程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复