node线程 进程 cluster child_process

最近看到了node cluster和child_process模块 做下一些知识点的梳理

什么是进程

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。

什么是线程

线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。

 

node在不启用cluster的情况下是单进程单线程异步非阻塞

单线程是指“主线程”是单线程,但是遇到需要i/o的时候还是会通过底层线程池调用线程进行文件的i/o操作,“主线程”不断轮询队列查询i/o结果,这部分就是异步非阻塞。

 

cluster的作用

为了确保我们的程序更健壮与高效,因为不启用cluster的node服务是单进程的很容易因为错误导致进程死掉并且不能更好的利用多核系统,所以需要使用cluster启用多个进程,进程之间的资源都是独立不共享的,所以就算一个进程死掉也不会影响其他进程,从而保证了程序的健壮,总的来说就是让计算机在多个进程下跑一个相同的任务,充分利用计算机资源。

 

child_process

功能强大,可以产生出其他新的进程,运行例如linux命令或者产生新的node进程。cluster就是对部分child_process功能的封装。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值