进程与线程

一、进程

1、定义:进程是程序的执行实例,是操作系统分配资源(CPU、内存、文件等)的基本单位。

2、特点:

(1)独立性:每个进程拥有独立的地址空间、代码、数据和系统资源;

(2)隔离性:一个进程崩溃通常不会影响其他进程(稳定性高);

(3)开销大:创建、销毁或者切换进程时,操作系统需要分配/回收资源,成本较高;

3、eg同时运行的浏览器和音乐播放器是两个独立的进程,它们的内存和资源完全隔离。

二、线程

1、定义:线程是进程内的执行单元,是CPU调度的基本单位。一个进程可以包含多个线程

2、特点:

(1)共享资源:同一个进程内的线程共享内存、文件等资源,通信成本低;

(2)轻量级:创建、切换线程的开销远小于进程(因为无需分配新地址空间);

(3)协作性:线程需要同步来避免资源竞争;

3、eg浏览器的一个标签页可能用一个线程加载页面,另一个线程播放视频,共享浏览器的内存空间。

三、区别和联系

维度进程线程
资源分配独立的内存和系统资源共享所属进程的内存和资源
切换开销高(需保存/恢复整个地址空间)低(只需保存寄存器、栈等少量状态)
通信方式进程间通信(IPC):管道、消息队列等直接读写共享内存(需同步机制)
健壮性一个进程崩溃不影响其他进程一个线程崩溃可能导致整个进程退出
创建/销毁速度慢,消耗资源多速度快,消耗资源少
并发性多进程可跨CPU核心并行执行多线程可在一个进程内并发执行

这张图带大家直观感受进程和线程的区别:

四、为什么需要线程

1、性能:线程切换比进程切换快得多,适合高并发任务(如Web服务器处理大量请求)。

2、资源共享:线程可直接访问共享数据,避免IPC的复杂性和开销。

3、多核利用:多线程能充分利用多核CPU的并行计算能力。

五、实际应用

1、多进程:需要高稳定性(如浏览器每个标签页独立进程)、隔离性(如安全沙箱)。

2、多线程:需要高效协作(如游戏渲染+逻辑线程)、高并发(如数据库连接池)。 

总结:进程是资源分配的单元,线程是CPU调度的单元;选择多进程还是多线程取决于对隔离性、性能还有开发复杂度的权衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值