单线程多进程理解不了
来源:9-11 happyPack是什么
嗯嗯_
2021-03-06 15:20:36
进程是什么,配置之后,代码是怎么执行的,为什么会变快,他和宏任务,微任务有没有关系
1回答
好帮手慕夭夭
2021-03-06
同学你好,问题解答如下:
1、进程是系统资源分配的最小单位(即系统以进程为最小单位分配内存空间,同时进程是能独立运行的最小单位)。通俗的理解为进程是一个工厂,每个工厂有其独立的资源。多进程顾名思义就是多个进程,即多个工厂。浏览器就是多进程的,以Chrome浏览器为例,打开任务管理,以下展示就是它的一些进程。例如我们打开一个页面,也会产生一个新的进程。
包括我们自己在本地创建的html文件,在浏览器中打开,也是一个独立的进程。
2、线程是系统调度的最小单位(即系统以线程为单位分配cpu中的核)。通俗的理解线程就是工厂中的工人,可能只有一个,可能有很多。一个就是单线程,两个及以上就是多线程。
所以进程和线程的关系就是这样的,进程就是一个工厂,而线程是工厂里面的工人。
3、因为JavaScript是单线程的,即一个工厂只有一个工人,那么干活肯定慢。但是我们是无法改变js是单线程这件事,所以只能开启多个进程,即多个工厂干活肯定就快了哦。
4、宏任务和微任务是说JavaScript异步代码的一个分类。先让同学了解一下JavaScript执行的机制,如下:
因为JavaScript是单线程的,也就是说它只有一个线程去做事情,所有任务都要排着队挨个执行(即从上往下执行代码,代码有同步任务的和异步任务,例如定时器就是异步的)。从上往下顺序执行代码时,会执行同步代码,遇到异步任务,就会把异步任务放在异步队列中,等到所有同步代码执行完毕。再执行异步任务。
所以宏任务和微任务就是这些异步任务的分类,宏任务有定时器,事件、ajax等,微任务有Promise(知道常见的就行)。这些异步的代码去进行分类,主要记住JavaScript会先执行微任务,后执行宏任务。
祝学习愉快~
相似问题