Skip to content

[软技能] 第102天 进程与线程有什么区别?JS的单线程带来哪些好处? #991

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

Open
haizhilin2013 opened this issue Jul 26, 2019 · 3 comments
Labels
软技能 软技能

Comments

@haizhilin2013
Copy link
Collaborator

第102天 进程与线程有什么区别?JS的单线程带来哪些好处?

@haizhilin2013 haizhilin2013 added the 软技能 软技能 label Jul 26, 2019
@LinStan
Copy link

LinStan commented Jul 27, 2019

一个程序必定包含>=1个进程,
一个进程必定包含>=1个线程,
进程之间不共享内存,每多一个进程就要多分配一定的内存。
多个线程共享内存,因此多线程可以提高程序的并发性。

JS单线程带来的好处:

JS主要是面向浏览器的,因此是和用户实时交互的,如果多线程执行的话,你无法确定同时开始的任务哪个会先结束,以网页加载为例,可能导致网页HTML结构已经加载好,但是CSS样式还未加载完成,导致用户浏览体验差。或者两个线程同时对一个DOM结点进行修改和删除操作,则无法判断以哪个线程为准。

@smile-2008
Copy link

一个程序必定包含>=1个进程,
一个进程必定包含>=1个线程,
进程之间不共享内存,每多一个进程就要多分配一定的内存。
多个线程共享内存,因此多线程可以提高程序的并发性。

JS单线程带来的好处:

JS主要是面向浏览器的,因此是和用户实时交互的,如果多线程执行的话,你无法确定同时开始的任务哪个会先结束,以网页加载为例,可能导致网页HTML结构已经加载好,但是CSS样式还未加载完成,导致用户浏览体验差。或者两个线程同时对一个DOM结点进行修改和删除操作,则无法判断以哪个线程为准。

@d4c-27
Copy link

d4c-27 commented Apr 5, 2022

进程:程序一次执行,占有一片独立的内存空间,可以通过windows任务管理器查看进程
线程:进程中的一个独立执行单元,是程序执行的一个完整流程,cpu的最小调用单元

一个进程至少有一个线程(主) 程序是某个进程中的线程执行的
浏览器运行有些是单进程有些是多进程,但都是多线程执行

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

4 participants