• PID (Process ID) 和 thread_id (Thread ID) 的区别


    PID (Process ID) 和 thread_id (Thread ID) 是操作系统中用来唯一标识进程和线程的两个重要概念,它们的区别在于:

    1. PID (Process ID):

    • 定义: PID 是 Process Identifier(进程标识符)的缩写,它是操作系统为每一个进程分配的唯一数字标识。每个进程在系统中都有一个独一无二的 PID,用于区分不同的进程。

    • 作用: PID 用于操作系统内核以及其他系统工具(如 pstopkill 等)管理和跟踪进程。例如,通过 PID,可以查询进程的状态、资源使用情况、发送信号(如终止进程的 SIGTERM 或 SIGKILL)等。

    • 特性: 操作系统中,不同进程的 PID 必须是唯一的。当一个进程结束时,其 PID 可能会被重新分配给新创建的进程。PID 的范围通常受限于系统的最大进程数限制(如通过 pid_max 配置)。

    2. thread_id (Thread ID):

    • 定义: thread_id 是 Thread Identifier(线程标识符)的缩写,它是由操作系统为每个线程赋予的唯一数字标识。线程是进程中能够独立执行的控制流,多个线程可以在同一个进程中并发运行。

    • 作用: thread_id 用于操作系统内核以及编程语言提供的线程库来管理和调度线程。通过 thread_id,可以区分同一进程内的不同线程,进行线程同步、通信、优先级调整等操作。在某些情况下,应用程序也可能需要直接使用线程 ID 进行内部管理。

    • 特性: 在一个进程中,每个线程的 thread_id 是唯一的,但不同的进程可以拥有相同 thread_id 的线程。当一个线程结束时,其 thread_id 不会被重新分配给同一进程内的其他线程。线程 ID 的范围通常由操作系统内部机制管理,不受全局进程数量限制。

    总结:

    • PID 是进程级别的唯一标识,用于区分操作系统中不同的进程。它在系统范围内必须是唯一的,并且随着进程的生命周期结束而可能被复用。

    • thread_id 是线程级别的唯一标识,用于区分同一进程内部的不同线程。它在进程内部必须是唯一的,但在不同进程中可以重复,且线程结束时不会被同一进程内的其他线程复用。

    简而言之,PID 与 thread_id 分别代表操作系统中进程和线程的唯一身份,它们各自服务于进程管理和线程调度的不同层面。理解两者之间的区别有助于正确管理和监控系统的并发执行单元。

  • 相关阅读:
    【HDU No. 1043】 八数码 Eight
    成为一名优秀的测试工程师必备条件
    操作系统内存换入-请求调页---14
    基于.NetCore开发博客项目 StarBlog - (18) 实现本地Typora文章打包上传
    GO面试题集锦
    第4周学习:MobileNetV1, V2, V3
    MyBatis-Plus生成sql语句时怎么知道表名和表的字段名,表的主键名的
    【C++基础】1.认识C++——《跟老吕学C++编程语言》
    【Flutter】Flutter学习-GetX 导航操作
    网络数据请求
  • 原文地址:https://blog.csdn.net/weixin_40482577/article/details/138212780