单核和多核cpu是怎么处理多线程的

首先,要先了解几个概念:

  1、线程是CPU调度和分配的基本单位。

  2、进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位 。

  3、一个进程可以包括多个线程。

  4、CPU的时间片是由计算机的操作系统OS里的调度器分配的.   当多个线程需要执行时,OS里的调度器会将CPU的执行时间划分为多个小的时间片,并依次分配给每个线程。

  5、操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。

并行和并发

并发:在同一个核心的CPU中,同一个时刻,只能有一条指令执行,但多个线程上下文的指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果

 并行:是指在同一个时刻,多个核心上不同的线程指令同时执行。

单核cpu多线程有必要吗?

通常一个任务不光 cpu 上要花时间, io 上也要花时间(例如去数据库查数据,去抓网页,读写文件等)。 一个进程在等 io 的时候, cpu 是闲置的,另一个进程正好可以利用 cpu 进行计算。 多几个进程一起跑,可以把 io 和 cpu 都跑满了。 

 也就是说,充分发挥单核CPU的性能,就要创建足够多线程来填满单核CPU上的时间片。但并非线程越多越好,由于线程之间存在竞争、上下文切换时的开销。

时间片

时间片代表了CPU分配给每个线程的最小时间单位。在多任务的OS中,当多个线程或进程需要执行时,计算机的操作系统OS里的调度器会将CPU的执行时间划分为多个小的时间片,并依次分配给每个线程或进程。

时间片的长度由系统内核、调度算法来决定的,可以是几毫秒或几十毫秒的量级。

上下文切换

切换过程:

1.A线程的时间片用完后,操作系统会剥夺该线程的CPU执行权,CPU会将A线程此刻用的数据存到寄存器中,将执行到哪一步的信息存到程序计数器中.

2.这时,轮到B线程开始执行了, CPU去处理B线程,  当B线程的时间片用完后,又会和线程A一样被暂时封存起来.  

3.线程A解封,CPU又开始执行线程A.

时间片+上下文切换的优缺点

优点:

1.充分利用cpu的效率

2.不同线程进行时间片轮转调度,实现了多个任务的并发执行效果。

缺点:

增加线程上下文切换给cpu带来的额外的性能开销。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单核CPU多核CPU处理器的两种不同类型,它们在核心数量上有所区别。 1. 单核CPU(Single-core CPU):单核CPU只有一个物理处理核心。它一次只能执行一个指令流,并在一个时钟周期内处理一个指令。这意味着单核CPU的性能受限于其时钟频率和指令执行效率,无法同时执行多个任务。 2. 多核CPU(Multi-core CPU):多核CPU包含两个或更多个物理处理核心,每个核心可以同时执行不同的指令流,也就是可以同时处理多个任务。多核CPU通过并行处理提高了系统的性能和效率。每个核心都可以独立地运行程序,拥有自己的寄存器和缓存。多核CPU可以更好地支持多线程应用程序和并行计算任务。 主要区别如下: - 性能:多核CPU相对于单核CPU具有更高的整体性能和处理能力。在多任务环境下,多核CPU能够同时处理多个任务,提供更好的响应时间和系统吞吐量。 - 能耗:多核CPU在相同工作负载下通常比单核CPU更省电。这是因为在多核CPU中,每个核心的工作负载可以被平均分配,并且可以根据需要动态调整核心的工作状态,从而更有效地利用能源。 - 热量和散热:多核CPU由于集成了多个核心,会产生更多的热量。因此,相对于单核CPU多核CPU需要更好的散热和冷却系统来保持温度在可接受范围内。 需要注意的是,多核CPU并不一定意味着性能增加的线性比例。实际上,多核CPU的性能增加取决于应用程序的并行化程度和任务的特性。某些任务可能无法有效地并行化,因此在这些情况下,多核CPU的优势可能相对较小。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值