进程与线程的关系,进程调度的基本过程

目标:

1. 了解进程与线程的关系

2. 进程调度的基本过程


进程与线程的关系

在我们学习进程调度前,我们先了解一下进程与线程:

1.进程是线程的容器

进程包含线程,一个进程里可以有一个线程,也可以有多个线程。

多个线程可以在同一个进程内共享进程的资源,如内存和文件,以实现并发执行。

2.资源分配

进程是操作系统分配资源的基本单位,每个进程都有自己的内存空间,独立分配的CPU时间片,以及其他系统资源。

线程共享所属进程的资源,它们通常更轻量级,创建和切换线程的开销较小。

3.并发性

进程和线程都可以用于实现并发性!!!

多个进程可以在不同的地址空间中并发执行,而多个线程共享相同的地址空间。(可以更容易地共享数据和协同工作)

4.独立性

进程是相互独立的,一个进程挂掉不会影响其他进程。

线程的崩溃会影响同一进程下的其他线程。


进程调度的基本过程

1.进程或线程创建

进程通过创建不同的 java 虚拟机实际来实现,线程通过"java.lang.Thread" 类创建。

2.资源分配 

java 虚拟机管理线程和和进程的资源分配(cpu时间片,内存,其他系统资源)。

每个线程堆栈和程序计数器(共享相同的堆内存)。

3.线程调度 

确定哪个线程应该在CPU上执行(java虚拟机线程调度器)

4.线程状态 

就绪状态:线程已准备好执行

运行状态:线程正在执行

阻塞状态:线程被阻止等待某些条件

终止状态:线程已完成执行

5.调度策略 

决定哪个线程应该执行(java虚拟机线程调度器)

6.线程同步 

java中提供同步机制:锁,条件变量,确保多个线程之间的正确协调和共享资源的安全访问。这有助于避免竞态条件和死锁等问题(后面我会再整理死锁问题)。

7.线程终止 

当线程完成其任务或出现异常时,它将进入终止状态。(可以正常终止或被强制终止)

你可能感兴趣的:(javaEE,javaee,java,ide)