博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并发、并行、串行概念
阅读量:3948 次
发布时间:2019-05-24

本文共 725 字,大约阅读时间需要 2 分钟。

使用多线程编程的主要目的是为了在有限的时间内充分利用计算机的处理能力做更多的事情(后文描述更精准)。而线程执行必须要先获取cpu的执行权,只有获取了cpu的执行权的线程才能被执行。了解了线程执行的基础概念之后再看一下什么是并发、并行、串行。

并发:

在单核CPU中,系统调度只能在同一时间执行一个线程,此时执行的多线程,其实是cpu的控制权在多个线程之间来回快速切换。造成看起来就像是同时执行了多个线程的幻觉。

栗子:

现在有ABC三个线程,三个线程之间首先会争夺CPU的控制权(假设是单核CPU),当A首先抢到控制权,那么B和C就会等待,等B抢到控制权A和C就会等待。这样三个线程之间快速切换,在同一时间内,只会有一个线程在运行。这就是并发。

并行:

在多核CPU中才会有并行,因为不同线程可以获取不同cpu的控制权,有了控制权就能被执行。简单的讲,并行就是在同一时间内,有多条线程同时执行。(注意:和并发有区别)

串行:

这个概念更好理解了,ABC几个线程,A先获取了CPU的控制权,那么A线程就会被执行,A执行完毕之后,B抢到控制权,在执行B线程,B线程执行完之后,再执行C线程……就按单核CPU线程排队办理业务就行了。

 

线程越多就越好?

开头说了使用多线程是为了在有限时间内处理更多的事情。这句话其实并不是特别准确,线程并不是越多越好

(1)首先每多开一个线程就会多占用一部分内存,线程越多,资源消耗也就越大。

(2)线程越多,CPU控制权需要在多个线程之间进行来回切换,而线程之间的切换也会消耗许多的时间,CPU的利用率反而下降了。

(3)线程太多,CPU占用如果达到100%,长时间的满载状态也会加速计算机硬件老化。

(4)反正就是不好

 

转载地址:http://ujhwi.baihongyu.com/

你可能感兴趣的文章
比金钱更好的十样东西
查看>>
凡事必定不少于三个以上的解决方法
查看>>
带团队的点滴心经
查看>>
五种力量让你如虎添翼
查看>>
你害怕创新吗
查看>>
创新服务的七要素
查看>>
虚伪的奉承也有效
查看>>
蒂姆·库克的五项核心领导力
查看>>
你为何没有成为领导者
查看>>
一切悲剧都源于不当激励
查看>>
别把用户的高期望混同于好体验
查看>>
动机和机会:推动商业发展的引擎
查看>>
4个信号表明你是一个失败的领导
查看>>
成功谈判 你需要几个锦囊?
查看>>
一个人的宽度决定了他的高度
查看>>
善于拜访是另一种经营智慧
查看>>
打造新老员工双赢机制变对立为统一
查看>>
企业如何避免用错人
查看>>
打掉苹果“无与伦比”的傲慢(人民时评)
查看>>
Creating an Android Project
查看>>