我是靠谱客的博主 唠叨咖啡豆,这篇文章主要介绍单核CPU使用多线程能否提高效率?,现在分享给大家,希望可以做个参考。

首先在回答这个问题前要明白几个概念:

      ①:什么是线程上下文切换

      ②:什么是CPU时间片

明白这两个概念后,我们再说答案(能/不能)

一,如果是CPU密集型作业------不能

      假设一段耗时总共为10s的代码(不涉及io操作),使用单线程执行,只需要10s的时间,当使用多线程执行时,就会涉及到线程的上下文切换,这时耗时肯定会超过10s的,所以这种情况下不能提高效率。

二,如果是IO密集型的作业----能

     同理,一段代码(线程使用CPU执行2s的运算,然后执行3秒的io操作,接下来重复这个操作一次)总耗时10s,其中io操作就会占用6s的时间。

     使用单线程执行时,串行执行总耗时为10s。

     现在使用2个线程执行,当线程一执行2s的CPU运算时,线程二也会获得CPU的时间片进行运算。也就是两个线程会并行执行,当然,因为是单核CPU,所以每个线程2s的运算时间是肯定的,执行完CPU的运算的时间(2*2)是需要4s的,假设线程上下文切换的时间为0.5s,然后每个线程等待io操作的时间是一样的(3s),那么执行完这段代码的所需时间(4s+0.5s+3s)也就是7.5秒。这种情况下多线程肯定是能提高效率的。

    当然,IO操作执行的时间越长,使用多线程就越有效。

 

 

最后

以上就是唠叨咖啡豆最近收集整理的关于单核CPU使用多线程能否提高效率?的全部内容,更多相关单核CPU使用多线程能否提高效率内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部