当前位置:首页 > 技术 >

多线程的优势是什么(多线程缺点)

来源:原点资讯(www.yd166.com)时间:2023-12-05 01:14:25作者:YD166手机阅读>>

多线程的最显著优点是:

  • 更高的CPU利用率。
  • 在某些情况下,程序设计更简单。
  • 响应速度更快的程序。
  • 在不同任务之间更公平地分配CPU资源。

更好的CPU使用率

想象一个应用程序从本地文件系统读取和处理文件。可以说,从磁盘读取af文件需要5秒钟,而处理则需要2秒钟。然后处理两个文件

多线程的优势是什么,多线程缺点(1)

从磁盘读取文件时,大部分的CPU时间都花在等待磁盘读取数据上。在这段时间内,CPU几乎处于空闲状态。它可能正在做其他事情。通过更改操作顺序,可以更好地利用CPU。查看以下顺序:

多线程的优势是什么,多线程缺点(2)

CPU等待读取第一个文件。然后,它开始读取第二个文件。当计算机的IO组件读取第二个文件时,CPU处理第一个文件。请记住,在等待从磁盘读取文件时,CPU大部分处于空闲状态。通常,CPU在等待IO时可以做其他事情。不必是磁盘IO。它也可以是网络IO,也可以是来自计算机用户的输入。网络和磁盘IO通常比CPU和内存IO慢很多。

程序设计更简单

如果要在单线程应用程序中手动编写上述读取和处理的顺序,则必须跟踪每个文件的读取和处理状态。相反,您可以启动两个线程,每个线程仅读取和处理一个文件。在等待磁盘读取其文件时,这些线程中的每个线程都会被阻止。在等待期间,其他线程可以使用CPU处理已读取的文件部分。结果是,磁盘始终保持忙碌状态,将各种文件读入内存。这样可以更好地利用磁盘和CPU。编程也更容易,因为每个线程只需要跟踪一个文件即可。

更多响应程序

将单线程应用程序转换为多线程应用程序的另一个共同目标是实现响应速度更快的应用程序。想象一下,一个服务器应用程序在某个端口上侦听传入的请求。收到请求后,它将处理该请求,然后返回监听。服务器循环如下所示:

多线程的优势是什么,多线程缺点(3)

如果请求需要很长时间才能处理,则在这段时间内没有新客户端可以将请求发送到服务器。只有在服务器正在侦听时,才能接收请求。另一种设计是侦听线程将请求传递给工作线程,然后立即返回侦听。工作线程将处理该请求,并将回复发送给客户端。该设计概述如下:

多线程的优势是什么,多线程缺点(4)

这样,服务器线程将返回到更快的侦听状态。因此,更多的客户端可以将请求发送到服务器。服务器变得更加敏感。桌面应用程序也是如此。如果单击启动长任务的按钮,并且执行任务的线程是更新窗口,按钮等的线程,则在任务执行时应用程序将显示为无响应。而是可以将任务移交给工作线程。当工作线程忙于任务时,窗口线程可以自由响应其他用户请求。当工作线程完成时,它向窗口线程发出信号。然后,窗口线程可以使用任务结果来更新应用程序窗口。具有工作线程设计的程序将显示出对用户更敏感的响应。

更公平地分配CPU资源

假设有一个服务器正在接收来自客户端的请求。然后想象一下,其中一个客户端发送了一个处理时间很长的请求,例如10秒。如果服务器使用单个线程处理了所有任务,则处理缓慢的请求之后的所有请求将被迫等待,直到处理完完整的请求为止。通过在多个线程之间划分CPU时间并在线程之间进行切换,CPU可以在多个请求之间更公平地共享其执行时间。这样,即使其中一个请求较慢,也可以与较慢的请求同时执行处理速度更快的其他请求。当然,这意味着执行慢速请求的速度甚至会更慢,因为它不会仅仅分配CPU来处理它。但是,其他请求将不得不等待更短的时间来处理,因为它们不必等待慢的任务完成才可以处理它们。如果只有慢速请求要处理,则仍可以将CPU单独分配给慢速任务。

栏目热文

6核12线程和8核8线程哪个好(八核8线程好还是6核12线程好)

6核12线程和8核8线程哪个好(八核8线程好还是6核12线程好)

如今,随着科技的发展,电脑处理器的性能越来越强大,而其中一个重要的指标就是处理器的核数。在市场上,我们经常会看到8核和6...

2023-12-05 01:01:50查看全文 >>

多线程模式有什么用(多线程是为了解决什么的)

多线程模式有什么用(多线程是为了解决什么的)

有读者说:自己每天上班很忙,但感觉没做多少事。我们手里每天基本都有多个事情要做,很多人为了在短时间内完成任务,于是,开启...

2023-12-05 01:14:45查看全文 >>

玩游戏需要多线程还是多核(哪些游戏支持多核多线程)

玩游戏需要多线程还是多核(哪些游戏支持多核多线程)

2017-11-27 05:41:00 作者:郎孟华玩不同游戏应该怎么选CPU?不同的游戏对处理器的需求不一样,总结起来...

2023-12-05 00:56:45查看全文 >>

为什么要用多线程有什么好处(多线程的意义是什么)

为什么要用多线程有什么好处(多线程的意义是什么)

多线程有什么好处?提高CPU的利用率,更好地利用系统资源,使用Monitor类可以同步静态/实例化的方法的全部代码或者部...

2023-12-05 00:46:59查看全文 >>

多线程与多进程(有了多线程为什么还要多进程)

多线程与多进程(有了多线程为什么还要多进程)

多线程和多进程都是实现并发执行的方式,可以提高程序的运行效率和资源利用率。简单来说,多线程是在一个进程内创建多个线程来执...

2023-12-05 00:39:50查看全文 >>

多线程是用来干嘛的(多线程具体怎么用)

多线程是用来干嘛的(多线程具体怎么用)

小陈在完成一段代码后进行了测试,发现代码的运行效率无法满足需求,在提高程序的执行效率同时不影响功能的前提下,想到了一个还...

2023-12-05 00:58:54查看全文 >>

变速箱不正确换挡(变速箱不会换挡了怎么办)

变速箱不正确换挡(变速箱不会换挡了怎么办)

自动挡车看似操作简单,但在驾驶自动挡车型的过程中,下面这五个禁忌需要车主们注意。禁忌一:减速中或下坡时,空挡滑行来省油换...

2023-12-05 01:07:16查看全文 >>

变速箱挡位故障怎么解决(变速箱挡位传感器故障的解决方法)

变速箱挡位故障怎么解决(变速箱挡位传感器故障的解决方法)

变速器乱档现象在离合器技术状况正常的情况下,变速器同时挂上两个档或挂需要档位时,结果挂入别的档位。变速器乱档原因①互锁装...

2023-12-05 01:03:08查看全文 >>

变速箱频繁换挡怎么办(变速箱换挡不顺的解决办法)

变速箱频繁换挡怎么办(变速箱换挡不顺的解决办法)

在日常生活中,驾驶汽车已成为人们出行的主要方式之一。然而,许多驾驶者存在着一些不良的驾驶习惯,其中频繁切换D挡和N挡就是...

2023-12-05 00:43:44查看全文 >>

买cs35十大忠告(建议不要购买长安逸动的原因)

买cs35十大忠告(建议不要购买长安逸动的原因)

对于长安汽车来说,CS35是他们推出的第一款SUV车型,第一代车型历经多次调整,可以说成为了长安汽车在国产乘用车领域逐渐...

2023-12-05 00:59:47查看全文 >>

文档排行