我理解的多进程和多线程

本文深入探讨了进程和线程的特性,进程作为资源分配单位,线程作为执行控制单元。介绍了多进程与多线程的并发执行,以及线程带来的效率提升和用户体验改善。同时,阐述了线程的五种状态,讨论了死锁的四个必要条件和处理死锁的四种方法,最后提供了选择使用进程或线程的实用指导原则。

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

1、进程
进程是程序在计算机上的一次执行活动。是一个具有一定独立功能的程序在某个数据集合的一次运行活动。程序是静态的,进程是动态的。

进程具有的特征:

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

并发性:任何进程都可以同其他进程一起并发执行;

独立性:进程是系统进行资源分配和调度的一个独立单位;

结构性:进程由程序、数据和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在                       执行时所需要的数据和工作区;程序控制块(Program Control Block,简称PCB)包含进程的描述信息和控制信息,是进程存在的唯一标志。


2、线程

线程是进程内的并发,是进程中的一个执行控制单元。

使用线程的好处

1、使用线程可以把占据长时间的程序中的任务放到后台去处理 

2、用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 

3、程序的运行速度可能加快

4、在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,使用线程我们可以释放一些珍贵的资源如内存占用等等


3、多进程

同一个时间里,同一个计算机系统中允许两个或两个以上的进程处于并行状态,这是多进程。进程带来的好处是你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。但并行需要解决的问题是通常并行的进程比CPU数量多得多,而原则上一个CPU只能分配给一个进程(引入线程后,CPU调度的基本单位是线程,进程是资源分配的最小单位),以便运行这个进程。而要让CPU同时运行多个进程,就必须使用并发技术,实现并发技术最常见的就是时间片轮转调度算法,即在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样,给用户的感觉就是并行。但实际上在任何一个时间内有且仅有一个进程占有CPU。 


4、多线程

一个进程中可以有多条执行路径同时执行,一个线程就是进程中的一条执行路径。

在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。它相当于一个进程里只有一个线程,进程本身就是线程。所以线程有时被称为轻量级进程(Lightweight ProcessLWP)。后来,随着计算机的发展,对多个任务之间上下文切换的效率要求越来越高,就抽象出一个更小的概念——线程,一般一个进程会有多个(也可是一个)线程。


</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值