美文网首页
并发——单核cpu串行与并发的选择

并发——单核cpu串行与并发的选择

作者: 饭吃了饿 | 来源:发表于2018-08-01 10:03 被阅读0次

    所有内容均为个人见解,不喜来喷。


    下面所有内容均在单核单cpu情况下讨论。

    不考虑I/O,执行任务相同的情况下,并发要比串行多消耗上下文切换的时间,因此单线程比多线程要快。上面这种情形(没有I/O)或者I/O较少的情况,我们称之为计算密集型(CPU-bound)任务,这种任务适合单线程。

    与计算密集型任务相对的,就是IO密集型(I/O bound)任务。由于存在I/O阻塞的问题,线程在执行过程中需要等待。比如我们要获取10个网络资源,每个网络资源需要5s。如果使用单线程的话,总共需要50s才能完成任务,而如果使用多线程的话,我们开启10个线程,忽略线程开启的时间,完成任务总共需要5s。因此对于IO密集型任务,适合采用多线程。

    结论:计算密集型任务适合单线程,IO密集型任务适合多线程。

    相关文章

      网友评论

          本文标题:并发——单核cpu串行与并发的选择

          本文链接:https://www.haomeiwen.com/subject/wnrlvftx.html