JS运行机制(进程与线程的区分)
进程包涵线程,一个进程可以包涵一个或多个线程,线程是在进程内部工作,而进程负责向外界输出。
如下图:
工厂好比是一个进程,它是有独立的实体,是原料从输入到成品输出的一个完成平台。
而进程则是这个工厂内的工人,他们分工协作共同完成把原材料变成成品的这个过程,逐步完成工作,或共同进行。
特例,进程中也可能只有一个线程的情况,这就好比小农经济时代的小作坊的匠人,一个人就可以完成一件产品,如铁锅。当然啦这样做出来的东西的复杂程度和效率肯定就没法和很多人协作的现代化大工厂相比较的了。如果说小作坊如同一个小公司的化,如果它能存活下来并继续发展。那么不可避免的它也会向这大企业,集团化,跨国化方向发展,进化。
学术的描述:
进程是cpu资源分配的最小单位(能够拥有资源和独立运行)。
线程是cpu调度的最小单位
(此处的最小单位类比化学中的原子,原子是化学变化的最小单位)
特例:
不同进程之间可以进行通信,就如同工厂与工程之间可以一原料与半成品的置换一样。不过这其中的成本可能就有些不好控制了。