进程线程的区别

进程是资源分配的基本单位,线程则是调度的基本单位,线程创建更快,切换更高效,但共享资源可能导致一损俱损。进程间的切换涉及更多的资源管理和地址转换,如TLB失效,导致时间成本增加。线程的崩溃会终结整个进程,而进程崩溃相对独立。

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

进程线程的区别

  1. 进程是分配资源的最小单位,线程的资源调度的最小单位

  2. 一个进程最少包括一个线程(主线程)

  3. 共属于同一进程的线程共享进程的资源

  4. 线程的创建要比进程的创建节省时间。每个进程都独享属于其的所有资源,虽然进程遵循写时拷贝,但是为其分配资源也需要大量的时间

  5. 多线程的切换比多进程的切换时间更短,因为进程间的切换需要内核的介入,需要一个从用户态到内核态的切换,而同属于一个进程的多线程间的切换就不需要,不属于同一进程的的线程之间的切换等同于进程的切换。

    网上还说进程之间的切换比线程的慢的主要原因是因为每个进程都拥有独立的0-3G(32位机为例)的用户空间,进程的切换回涉及虚拟地址的转换,由于页表的转变会使TLB(快表)失效,一段时间内TLB不会命中,操作系统就必须要访问内存,所以进程间切换的时间比较长

  6. 一个线程的崩溃会导致整个进程的崩溃,一个进程的崩溃不会影响到其他的进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值