重学NodeJS
重学NodeJS
月晕多进程与多线程
Nodejs 是单线程通过指的是他的JavaScript代码执行逻辑是单线程模型异步非阻塞的,但实际上Nodejs本身是一个复杂的多线程架构,其架构图简易如下
最上层:JavaScript应用层,以单线程模型运行
中间层:负责搭建JavaScript与底层内核C/C++沟通的桥梁
最下层:NodeJs真正的核心,其中Libuv提供了跨平台,线程池,事件池,异步IO,网络开销等底层的机制
进程和线程
进程
运行一个可执行文件,这个文件会装载在内存中,CPU会执行程序中的每条指令,运行中的程序即是进程(Process)
进程是可中断,多个程序交替执行,在一段时间内能执行多个进程,这样就是并发
进程的状态
进程中主要是用PCB(process control block)数据结构来描述的,其中包含各种信息,以链表的形式连接在一起,进程的控制中存在创建、终止、阻塞、唤醒等几种过程去完成进程的状态切换
进程的上下文切换
各个进程之间是共享CPU资源的,在不同的进程之间需要切换,让不同的进程在CPU执行,从一个进程执行切换到另一个进程,即进程的上下文切换
CPU的信息中包括CPU寄存器和程序计数器
流与网络
安全
评论
隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果