单核CPU如何执行多线程

news/2024/11/24 11:42:45/

概述

在多处理器系统中,多个线程在不同的内核上同时执行。
例如,如果有两个线程和两个内核,则每个线程将在单个内核上运行。在单处理器系统中,多个线程执行一个接一个的执行,或者等到一个线程完成或被操作系统抢占,这取决于线程的优先级和操作系统策略。但是正在运行的线程给人一种错觉,认为它们可以同时运行,相对于用户空间应用程序所需的应用程序响应时间。

时间比较(示例):

如果两个线程各自花费10us执行,那么在2处理器系统上,净时间为10us

如果两个线程各自花费10us执行,那么在1个处理器系统上,净时间为20us

问题

由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。

时间片

多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢? 操作系统的设计者 巧妙地利用了时间片轮转的方式

时间片是CPU分配给各个任务(线程)的时间!

思考:单核CPU为何也支持多线程呢?

线程上下文是指某一时间点 CPU 寄存器和程序计数器的内容,CPU通过时间片分配算法来循环执行任务(线程),因为时间片非常短,所以CPU通过不停地切换线程执行。

换言之,单CPU这么频繁,多核CPU一定程度上可以减少上下文切换。

总结

1.(单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行

2.多线程同时执行:是CPU快速的在多个线程之间的切换

3.cpu调度线程的时间足够快,就造成了多线程的“同时”执行

4.如果线程数非常多,cpu会在n个线程之间切换,消耗大量的cpu资源

5.每个线程被调度的次数会降低,线程的执行效率降低

建议

合理设置线程数目既可以最大化利用CPU,又可以减少线程切换的开销。

  • 高并发,低耗时的情况,建议少线程。

  • 低并发,高耗时的情况:建议多线程。

  • 高并发高耗时,要分析任务类型、增加排队、加大线程数


http://www.ppmy.cn/news/283136.html

相关文章

双核笔记本cpu比较之intel篇

转帖,很使用,谢谢原作者 双核笔记本也流行这么久了,迫于弟弟要买本我才研究一下我发现现在这玩意可不是迅驰一二那时那么简单恁多型号啊,真晕,一怒之下,总结之!不主流的XE和LV没有收录&#xf…

酷睿双核与奔腾双核有什么区别

作者&#xff1a;矢名 来源&#xff1a;中关村在线 投递者&#xff1a; kaipu [2008-06-11 22:06] 阅读&#xff1a; <script src"http://www.cbifamily.com/publish/counter.php?odisplay&amp;amp;typetotal&amp;amp;IndexID14254">…

酷睿双核一代和酷睿双核二代CPU的区别

href"file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_filelist.xml" rel"File-List" /> 酷睿双核一代和酷睿双核二代CPU的区别 T2300e与T5500的区别 1. 分属Intel不同的CPU产品系列&#xff0c;T2300e是2006年初发布的酷睿一代产品&…

酷睿双核、酷睿2双核、奔腾双核、酷睿i系列的区别

面对纷繁复杂的命名&#xff0c;它们究竟有些什么区别呢&#xff1f; 酷睿是英文单词core的音译&#xff0c;译为“核心”。 酷睿是一款领先节能的新型微架构&#xff0c;设计的出发点是提供卓越出众的性能和能效、提高每瓦特性能&#xff0c;也就是所谓的能效比。早期的酷睿是…

「科技者」

活动介绍 第一台计算机的发明、智能手机的出现、太空探索的发展、人工智能的应用......在信息爆炸的时代&#xff0c;科技正在改变着我们的生活&#xff0c;让我们的世界变得更加美好&#xff0c;而这一切离不开科技工作者的辛勤付出&#xff01; 所有的技术人er&#xff0c;…

.gitignore忽略文件不生效

前言 .gitignore忽略文件时git仓库很重要的一个配置&#xff0c;在创建仓库时就会有模板选择和忽略文件。 .gitignore忽略文件意思是在上传到代码仓库时&#xff0c;控制把哪些代码文件不上传到代码仓库。 在实际开发中其实写的代码是没有多大的&#xff0c;主要的是插件本地…

GPT从入门到精通 之 GPT-2 模型进阶

GPT-2 模型进阶 在之前的文章中&#xff0c;我们已经介绍了如何在 Tensorflow2.x 环境中使用 GPT 模型进行文本生成。本篇文章中&#xff0c;我们将进一步讨论 GPT-2 模型的进阶应用&#xff0c;包括如何使用预训练模型和微调模型来提高模型的质量和效果。 GPT-2 模型原理 GP…

Flutter图片压缩库对比

Flutter图片压缩库对比 在Flutter应用程序开发中&#xff0c;图片压缩是一个非常重要的话题。在本文中&#xff0c;我们将比较一些常用的Flutter图片压缩库&#xff0c;以便您可以选择适合您应用程序的最佳选项。 flutter_image_compress 该库是Flutter官方推荐的图片压缩库…