OS:进程&线程

1、进程 vs 线程

进程 线程
含义 一个在内存中运行的应用程序 进程的一个执行任务
包含关系 一个进程有若干个线程 进程的一部分,相当于只有一个任务的进程(轻权进程、轻量级进程)
根本区别 操作系统资源分配的基本单位 CPU 任务调度和执行的基本单位
资源开销 每个进程都有独立的代码和数据空间(程序上下文),上下文切换的开销大 同一进程的线程共享代码和数据空间,每个线程有独立的栈区和程序计数器,上下文切换的开销小
影响关系 进程崩溃后,在保护模式下不影响其它进程 线程“崩溃”,可能导致整个进程崩溃。
(多进程比多线程健壮)
执行过程 可独立执行,有程序运行的入口、顺序执行序列和程序出口 线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

2、进程

  1. 线程调度算法

3、线程

3.1、线程崩溃

线程“崩溃”时触发 segment fault 信号

线程触发 segment fault 信号时,系统有两种处理方式。

  1. 不屏蔽信号:操作系统终止该线程所在的进程(默认)
  2. 屏蔽信号:由线程的崩溃位置决定
    • 线程独占区:不影响其它线程。
    • 线程共享区:会的

Hint:Java 线程崩溃,JVM 自动释放相关的资源,不会导致进程崩溃。

3.2、线程状态

Java 并发:线程状态

  • OS 层面

    1. 初始

    2. 可运行

    3. 运行

    4. 阻塞

    5. 终止

    image-20220323014842029

  • Java Thread API

    1. NEW

    2. RUNNABLE

    3. BLOCKED

    4. WAITING

    5. TIMED_WAITING

    6. TERMINATED

    image-20220323021543824

posted @ 2022-04-16 22:27  Jaywee  阅读(68)  评论(0编辑  收藏  举报

👇