Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 2.11 KB

什么是进程?什么是线程?他们的区别是什么?.md

File metadata and controls

32 lines (25 loc) · 2.11 KB

进程

一个进程是操作系统分配资源的基本单位。它代表了应用或程序的一次执行实例。**每个进程都拥有独立的内存空间、数据栈以及其他用于跟踪执行的辅助数据。**操作系统管理着所有进程,并为它们分配CPU时间。

进程之间相互隔离,通常情况下,一个进程无法直接访问另一个进程的资源,这种设计提高了系统稳定性。

线程

一个线程是操作系统能够进行运算调度的最小单位。**它被包含在进程之中,是进程中的实际运行单位。一个进程可以拥有一个或多个线程,所有线程共享进程的内存和资源。**但是,每个线程还会拥有自己的执行堆栈和程序计数器。

线程也称为轻量级进程,因为它们比完整的进程更“轻”,创建和上下文切换的开销较小。

进程与线程的区别

  1. 内存分配
    • 进程:每个进程有自己独立的地址空间,一个进程崩溃后,在保护模式下不会影响其他进程。
    • 线程:所有线程共享其母进程的地址空间,一个线程的错误可能会导致整个进程的崩溃。
  2. 通信方式
    • 进程:进程间通信需要特殊的IPC机制。
    • 线程:线程间可以直接读写进程数据段(如全局变量)来进行通信。
  3. 系统开销
    • 进程:进程在创建、销毁、切换时的系统开销大,因为涉及到对应的地址空间的创建和销毁。
    • 线程:线程的创建、销毁、切换的开销相对较小,因为它们共享很多资源。
  4. 资源管理
    • 进程:作为资源分配的基本单位,独立进程拥有完整资源集合。
    • 线程:作为调度执行的基本单位,只维护必要的信息和资源供运行。
  5. 依赖关系
    • 进程:进程可以独立执行,不依赖其他进程。
    • 线程:线程是进程的一部分,依赖于进程的存在。
  6. 执行环境
    • 进程:每个进程提供给其内部线程的执行环境相对复杂。
    • 线程:线程拥有较为简单的执行环境。