进程中使用的线程越多,执行速度就越快,这种说法对不对

高堡奇人第一季2023-05-04  28

不对

完成一个任务可以有多进程和多线程两种方式,到底哪种方式快呢?通常人们认为Windows系统是以进程为单位分配CPU时间片的,那么使用多个进程就可以多分得一些CPU时间,自然就会比使用单独进程多个线程的方式快一点了。事实上这种情况并不绝对正确,首先,创建进程比创建线程要多占用系统资源,系统资源不足往往会引起系统性能的下降,导致任务完成的比较慢。其次,由于多个进程要操作同一个数据集合,必然会因为数据争用导致进程状态改变,同多个线程状态改变相比,进程切换要使用更多的CPU时间。最后,使用单进程方式,由于进程少,每个进程又可以较多的获得CPU时间片,从而能够很大的改善进程的性能。由此可见,并不是使用多进程处理数据就一定比使用多个线程的单进程快。图(1)显示了使用两种方式的程序性能变化曲线,从图上可以看出,无论使用何种方式,进程和线程都不是越多越好,两种方式都存在一个临界点,超过这个临界点,都会因为频繁的进程或线程状态切换而造成程序性能下降。使用多进程方式在到达临界点之后再增加进程就会引起性能的下降,而且下降速度比单进程多线程方式到达临界点之后的下降速度快,这是因为进程切换比线程切换更费时。

不是。

当下载网站限制了线程数,开多了反而会不能下载(可能会被封IP的!!),例如FTP服务器一般只允许开一个线程下载,我常去的太平洋下载中心只允许最多三个线程。

下载快完成时下载工具要将各个线程下的部分合并,下载时线程开得越多,后期合并时间越长,特别是一些大文件。

线程开多了,对磁盘的影响比较大,也占用资源。

不是,因为机器的CPU数、CPU核心数、单核心的线程数都是固定的。例如你的机器有1个CPU,双核四线程,那么你的机器最多同时跑四个线程。所以,设置线程数为4,理论上能获得最大效率。需要额外考虑的是线程之间的切换也是很耗时的,所以不建议设置过多线程数,有可能会适得其反。

以上就是关于进程中使用的线程越多,执行速度就越快,这种说法对不对全部的内容,包括:进程中使用的线程越多,执行速度就越快,这种说法对不对、下载时是不是线程越多越好、c++中多线程编程是不是线程数越多越好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

转载请注明原文地址:https://juke.outofmemory.cn/read/3785294.html

最新回复(0)