二者概念
进程
·运行起来一个程序就会在操作系统产生一个或多个进程
·进程属于软件资源。
·进程是操作系统中资源分配的基本单位。
·每个进程拥有独立的 内存空间、文件描述符、系统资源。
·进程之间相互隔离,一个进程崩溃不会直接影响其他进程。
·操作系统管理进程
线程
·是 CPU 调度和执行 的基本单位,属于进程的一部分。
·一个进程可以包含多个线程,所有线程共享进程的资源(如内存、文件)。
·线程之间通信更高效,但一个线程崩溃可能导致整个进程崩溃。
进程与线程的各方面对比
对比项 | 进程 | 线程 |
资源占用 | 独立内存空间,开销大 | 共享进程资源,开销小 |
切换成本 | 高(切换内存、寄存器) | 低(只需要切换线程上下文) |
通信方式 | 进程间通信 | 直接读写共享内存 |
独立性 | 完全隔离,稳定性高 | 相互依赖,一个线程崩溃可能影响整个进程 |
创建/销毁速度 | 慢 | 快 |
进程与线程的区别:
进程是资源分配单位,线程是执行单位;进程独立,线程共享资源。
进程与线程的联系:
1.线程是进程的子集
·一个进程至少有一个线程(主线程),也可以创建多个线程。
·线程共享进程的全局变量、堆内存、文件描述符等资源。
2.协作关系
·多线程用于提高程序并发性(如Web服务器处理多个请求)。
·多进程用于增强稳定性(如浏览器用不同进程处理不同标签页)。
-线程依赖进程,多线程实现轻量级并发,多进程实现高稳定性。
使用场景
进程:需要高稳定性的场景;任务间需要严格隔离。
线程:需要高效并发;任务间需要频繁通信。