Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第65题(2019-10-24):node中进程和线程区别是什么?说的越详细越深入越好! #67

Open
qappleh opened this issue Oct 24, 2019 · 1 comment
Labels

Comments

@qappleh
Copy link
Owner

qappleh commented Oct 24, 2019

No description provided.

@qappleh qappleh added the Node label Nov 25, 2019
@qappleh
Copy link
Owner Author

qappleh commented Apr 26, 2020

线程

线程是操作系统能够进行运算调度的最小单位,首先我们要清楚线程是隶属于进程的,被包含于进程之中。一个线程只能隶属于一个进程,但是一个进程是可以拥有多个线程的。单线程就是一个进程只开一个线程

Node.js 中的进程

process 模块

Node.js 中的进程 Process 是一个全局对象,无需 require 直接使用,给我们提供了当前进程中的相关信息。

node中进程可以使用child_process模块创建。

关系:

  • 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通常说的主线程)。

  • 源分配给进程,同一进程的所有线程共享该进程的所有资源。用户进程主要段segment:stack(向低地址),heap,.rodata,data/bss,.text。一个进程,上面的5部分是主要的,必须的。线程只拥有stack(线程栈,线程栈是单个线程所独享的,2M),保存自己的函数调用过程,比如heap,.rodata,data/bss,text段都是共享的。

  • 程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

  • 处理机分给线程,即真正在处理机上运行的是线程。

  • 线程是指进程内的一个执行单元,也是进程内的可调度实体。

node进程与线程的区别:

  • 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

  • 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。

推荐文章:深入理解Node.js 进程与线程(8000长文彻底搞懂)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant