
文章目录 吃透进程/线程关系父子进程、同进程线程、跨进程线程 一张图看懂一、先把 4 个概念一句话说清二、最核心区别资源共享面试必考1父子进程2同一个进程内的多个线程3不同的无关进程4不同线程分两种三、谁崩溃会影响谁最重要的工程常识四、创建与销毁成本五、调度单位六、一张表终极总结背会就能面试七、最简单记忆法 吃透进程/线程关系父子进程、同进程线程、跨进程线程 一张图看懂本文已收录至「Linux 并发与多线程核心手册」用最清晰的分类帮你彻底区分父子进程、同进程内多线程、不同进程、不同线程跨进程一、先把 4 个概念一句话说清父子进程爸爸进程fork()出来的儿子进程。地址空间完全独立像克隆后分家。同一个进程里的多个线程同一个房间里的多个人。共享全部资源只是执行流不同。不同的进程无关进程两个完全没关系的家庭。完全隔离只能靠 IPC 通信。不同的线程可能同进程/可能跨进程只要是两条执行流都叫不同线程同进程内共享一切跨进程完全不共享二、最核心区别资源共享面试必考1父子进程刚fork时数据一模一样但写时复制Copy-On-Write一修改就各自独立不共享地址空间、栈、堆、全局变量通信必须用管道、消息队列、共享内存、信号等2同一个进程内的多个线程共享代码段数据段全局变量、静态变量堆文件描述符、信号处理、当前目录私有栈寄存器上下文通信极快直接改全局变量就行但要加锁3不同的无关进程完全隔离无任何内存共享只能 IPC4不同线程分两种同进程线程共享一切不同进程的线程完全不共享三、谁崩溃会影响谁最重要的工程常识子进程崩 → 父进程没事父进程崩 → 子进程可以继续活变成孤儿同进程一个线程崩 → 整个进程崩 → 所有线程一起死不同进程的线程崩 → 互相完全不影响结论进程是安全隔离单元线程是效率单元。四、创建与销毁成本进程重fork → 复制页表 → 独立地址空间线程轻只创建栈和上下文共享地址空间五、调度单位进程资源分配单位线程CPU 调度的基本单位内核不管你是哪个进程的线程只管调度线程。六、一张表终极总结背会就能面试对比维度父子进程同进程多线程不同无关进程不同线程跨进程地址空间独立写时复制共享完全独立完全独立全局变量/堆不共享共享不共享不共享崩溃影响互不影响子崩父不崩一个崩全部崩互不影响互不影响通信方式IPC管道、共享内存等直接读写全局变量需加锁IPCIPC创建速度慢快慢快本身是线程调度单位线程进程是资源单位线程线程线程七、最简单记忆法进程 独立房子父子是两栋楼互不干扰。线程 房子里的人同屋人共享一切一人出事全家遭殃。