进程和线程的区别和联系

本文详细介绍了操作系统中的进程和线程概念。进程是资源分配的基本单位,而线程是执行调度的最小单位,是轻量级的进程。一个进程中可以有多个线程,它们共享资源但拥有独立的状态、优先级和记账信息。线程的状态包括新建、运行、无限等待、期限等待、堵塞和结束。理解这些概念对于优化并发编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、什么是进程?

二、什么是线程?

三、进程和线程的联系

相关

区别

四、线程的状态


一、什么是进程?

正在运行的程序的实例

        在操作系统没有引入进程的时候,CPU每次只能执行一个程序多个程序只能顺序执行,这样就造成了资源的浪费浪费了大量的时间,为了提高CPU的利用率于是操作系统引入了进程以及中断处理,这样就实现了通一时间内可以运行多个程序提高效率。

资源分配基本单位

二、什么是线程?

进程的实际运行最小单位

        进程虽然实现了并发编程但是平凡创建进程的开销较大,引入的线程是轻量级的进程,可以减少开销提高效率。

调度执行的基本单位


三、进程和线程的联系

相关

  • 一个进程可能有一个线程(单线程),也可能有多个线程(多线程)
  • 一个进程中的线程之间文件描述表、内存指针都是同一份,状态、优先级、上下文、记账信息每个线程独立
  • 一个进程对应一组PCB,每个PCB对应一个线程

区别

  • 进程是资源分配的基本单位,线程是执行调度的最小单位
  • 对进程的调度过程实际上是对线程的调度过程
  • 线程是轻量级的进程,进程包含线程,线程的创建代价比进程小(正式线程存在的意义)
  • 进程之间互通较难需要通过映射,而线程之间资源是互通的

四、线程的状态

新建(NEW):创建出线程但是没有启用。

运行状态(RUNNABLE):调用start方法启用线程,此时线程实在执行状态

无限等待状态(WATING):这种状态下不会被CPU分配执行时间,等到被唤醒。

无Timeout参数的Object.wait()方法

无Timeout参数的Thread.join()方法

LockSupport.park()方法

期限等待(TIME_WAITING):在这种状态下不会被CPU分配执行实现,无需等待被其他线程显式唤醒,在时间结束后即可自动唤醒。

堵塞状态(BLOCKED):线程被堵塞

结束(TERMINATED):线程执行结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极品小學生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值