**线程**是进程中的一个执行单元。一个进程可以包含多个线程。**多线程**是同时进行多个单线程任务,[[JavaScript 异步编程]]代码是由线程数量决定的,多线程是由多个核心CPU或其他技术实现的。 **进程**是一个正在运行的程序的实例。 # 类比、比较与对比 ## 线程与进程的关系 ![](http://image.harryrou.wiki/2023-04-28-CleanShot%202023-04-28%20at%2013.41.02%402x.png) ![](http://image.harryrou.wiki/2022-12-21-Pasted%20image%2020221221094655.png) ![](http://image.harryrou.wiki/2022-12-21-threads-two.gif) # 实例和问题 - **进程**: - 一个Web浏览器是一个进程,每个打开的标签页也可以是一个单独的进程,以便某个标签页崩溃不会影响其他标签页。 - 一个操作系统的服务程序,如打印服务、文件服务等,通常以独立的进程运行,以确保稳定性和隔离性。 - **线程**: - 一个Web服务器处理多个并发请求时,通常会为每个请求创建一个线程,以便同时处理多个请求。 - 在一个文本编辑器中,主线程负责用户界面响应,而另一个线程可能负责后台自动保存文档。 # 问题答案 # 备注(经验集/错误集) - [线程](https://zh.wikipedia.org/wiki/%E7%BA%BF%E7%A8%8B) - [进程](https://zh.wikipedia.org/zh-hans/%E8%A1%8C%E7%A8%8B) - [面试官系列](https://vue3js.cn/interview/linux/thread_process.html#%E4%B8%80%E3%80%81%E8%BF%9B%E7%A8%8B)