关于进程与线程的关系
关于进程与线程的关系
inkOrCloud概念
进程:指程序的一次执行过程,是系统资源分配的基本单位。每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅助数据。操作系统负责进程控制和资源分配等工作。
线程:进程内部的一个执行单元,是操作系统能够进行运算调度的最小单位,一个进程可以包含多个线程。
对比
| 进程 | 线程 | |
|---|---|---|
| 占用 | 相互独立,内存占用较大,每个进程运行一个独立jvm | 虚拟机栈,本地方法栈,程序计数器独立,共享堆与元数据内存 |
| 通信 | IPC机制(套接字,管道等) | 可直接通过共享内存通信 |
| 健壮性 | 进程是资源分配的基本单位, 进程的崩溃只会影响当前进程及其子进程, 不会对系统其他进程造成影响 | 线程是程序执行的基本单位,一个线程崩溃可能会导致整个进程崩溃 |
总结
进程为一个程序一次执行的过程,线程为程序中的一个执行单元,一个进程可以包含多个线程,线程的性能开销较小且线程间方便相互通信,但从健壮性来看线程出错会对整个进程造成较大影响(chromium的多进程框架的主要目的之一就是提高应用健壮性)


![[leetcode 2197][Go][栈][模拟]替换数组中的非质数](https://s3.inkorcloud.top/image/2025/10/807921ea51f64ad42220a3dd408dfcfe.png)
![[leetcode 3563][Go][动态规划]区间DP和线性DP的混合使用](https://s3.inkorcloud.top/image/2025/10/155967c8f2c77f87804270970c10af46.png)
![[leetcode 3347][Go][答案二分]万能的二分法](https://s3.inkorcloud.top/image/2025/10/b92574e48ab8dfff1b32cc049a61df5f.png)
![[leetcode 3605][Go][二分答案]能二分的不只有数组](https://s3.inkorcloud.top/image/2025/10/3314adab4c88e645ac3a6dae75ab73e0.png)
![[leetcode 3171][备忘录][Go]关于LogTrick解法的个人理解](https://s3.inkorcloud.top/image/2025/10/3396d17ba0c1696cb78fb6e93d7d1d0b.png)