关于多线程:单个CPU上有多个线程和性能

关于多线程:单个CPU上有多个线程和性能

Multiple threads and performance on a single CPU

在具有单个线程且没有超线程的CPU的计算机上使用多个线程是否对性能有好处?


就计算速度而言,不。实际上,由于管理线程的开销,事情将会放慢。

就响应能力而言,是的。例如,您可以让一个线程等待IO操作,而让另一个线程同时运行GUI。


这取决于您的应用程序。如果它花费所有时间使用CPU,那么多线程只会减慢速度-尽管您可以使用它来对用户做出更快的响应,从而给人留下更好的性能印象。

但是,如果您的代码受其他限制,例如使用文件系统,网络或任何其他资源,则多线程可以提供帮助,因为它允许您的应用程序异步运行。因此,当一个线程正在等待从磁盘加载文件时,另一个线程可能正在查询远程Web服务器,而另一个线程正在重绘GUI,而另一个线程正在进行各种计算。

使用多个线程还可以简化您的业务逻辑,因为您不必过多地关注各种独立任务的交错方式。如果操作系统的调度逻辑比您的调度逻辑更好,那么您确实可能会看到性能提高。


您可以考虑在单个CPU上使用多线程

  • 如果您使用网络资源
  • 如果您进行高强度的IO操作
  • 如果您从数据库中提取数据
  • 如果您可能会延迟利用其他东西
  • 如果您想让您的应用程序具有超高速反应
  • 当您不应该在单个CPU上使用多线程时

  • 高强度操作,CPU使用率几乎达到100%
  • 如果不确定如何使用线程和同步
  • 如果您的应用程序无法分为多个并行进程

  • 是的,在单个CPU上使用多个线程(或进程)是有好处的-如果一个线程正忙于等待某事,则其他线程可以继续做有用的工作。

    但是,这可以通过任务切换的开销来抵消。您必须在生产级硬件上对应用程序进行基准测试和/或分析,以找出答案。


    绝对!如果您执行任何类型的I / O,则拥有多线程系统将具有很大的优势。当一个线程等待I / O操作(相对较慢)时,另一个线程可以做有用的工作。


    不管可用的CPU数量如何,如果您需要抢先式多任务处理和/或具有异步组件的应用程序(即,几乎任何将响应式GUI与少量计算或连续I / O处理结合在一起的东西),多线程性能比替代方法要好得多,替代方法是为每个应用程序使用多个进程。

    这是因为同一进程中的线程可以共享多个内存上下文,因此与多个进程相比,它们可以更有效地交换数据。

    有关这些问题的简要介绍,请参见有关计算机多任务处理的Wikipedia文章。


    推荐阅读

      提高3A四核羿龙II游戏配置的性能

      提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

      计算机主板BIOS设置详细-BIOS知识

      计算机主板BIOS设置详细-BIOS知识,,什么是电脑BIOS,一般电脑主板已经设置完毕后,电脑就开始按del键进入BIOS。系统启动BIOS,即微机的基本输入

      优化PostgreSQL中的批量更新性能

      优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

      计算机蓝屏故障的计算机蓝屏解决方案

      计算机蓝屏故障的计算机蓝屏解决方案,,电脑蓝屏电脑故障经常使用电脑的朋友经常遇到,因为电脑蓝屏是一个非常普遍的现象,所以很难预测,什么时

      诺基亚威图性能好到哪里

      诺基亚威图性能好到哪里,诺基亚,手机,诺基亚威图性能好到哪里这是一部以前列出的手机。即使当时配置不高,该品牌的手机也不依赖于该功能吸

      魅蓝note6性能参数有哪些

      魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

      计算机自动关机的原因是什么

      计算机自动关机的原因是什么,,计算机(计算机),通常称为计算机,是一种用于高速计算的电子计算机。它可以进行数值计算和逻辑计算,还具有存储记忆

      电脑功率计算|电脑功率计算公式

      电脑功率计算|电脑功率计算公式,,电脑功率计算公式  从设计角度出发一般取300w/台基本都可以满足要求,可以从以下几个方面分析一下电脑功

      如何设置计算机视图视图的统一视图

      如何设置计算机视图视图的统一视图,,不知道你是否有这样的使用电脑经验,电脑在不同的文件夹打开,有时这个文件夹是用来查看列表的方式,但是当