操作系统:线程切换和进程切换的区别

参考文章

Thread Switching

Thread switching is a type of context switching from one thread to another thread in the same process. Thread switching is very efficient and much cheaper because it involves switching out only identities and resources such as the program counter(程序计数器), registers(寄存器) and stack pointers(栈指针). The cost of thread-to-thread switching is about the same as the cost of entering and exiting the kernel. 开销差不多相当于系统调用用户态内核态或从内核态用户态

Process Switching

Process switching is a type of context switching where we switch one process with another process. It involves switching of all the process resources with those n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统中,进程和线程是两个基本的执行实体,它们的主要区别在于以下几个方面: 1. **定义**: - 进程:一个进程是系统进行资源分配和调度的基本单位,它拥有独立的内存空间和完整的程序,有自己的执行上下文,包括代码、数据和堆栈等。 - 线程线程是在一个进程中执行的顺序控制流,它是操作系统调度的最小单位。多个线程共享同一个进程的资源,但各自具有独立的局部变量和堆栈。 2. **资源占用**: - 进程:每个进程都有自己的地址空间,资源开销相对较大。 - 线程线程共享进程的资源,如内存、文件描述符等,所以创建和销毁线程的开销较小。 3. **并发性与同步**: - 进程:由于内存隔离,进程之间的并发性较差,通信需要通过进程间通信(IPC)机制,如管道、消息队列等。 - 线程:在同一进程内的线程可以更高效地并发执行,线程切换快速,不需要额外的系统开销,因此更适合于并发编程。同步控制通常使用锁、信号量等工具。 4. **调度**: - 进程:每个进程一般只有一个运行状态,操作系统调度时需要将整个进程从就绪状态切换到运行状态。 - 线程:同一进程中的线程可以同时处于运行、等待或挂起状态,操作系统可以更细粒度地切换线程,提高响应速度。 5. **继承和生命周期**: - 进程:进程不支持继承,一旦创建就独立存在。 - 线程:在一个进程中可以创建多个子线程,这些子线程通常共享父线程的资源,生命周期受父进程影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值