大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。
本文主要介绍了串行、并行、并发,希望能对学习的同学们有所帮助。
- 首先说明,并行与串行具有对比性,并发与二者并没有可比性。因为并发只是一种现象。
- 并行和串行:
- 并行:指的就是同一时刻多个进程可以同时在运行。由于一个CPU某一时刻只能运行一个程序,因此,并行(同一时刻运行多个程序)依赖于多核CPU。如同时打开qq和微信,且一直运行
- 串行:同一时刻只能运行一个程序,如果存在多个程序,需要按照先后顺序执行。如单核CPU,我打开qq后,不能再同时打开微信,只能等qq执行完成(关闭)后才能打开微信。
- 现象:最早之前,很多电脑还是单核CPU,但是依然可以同时打开多个应用程序(启动多个进程);现在的电脑虽然是多核的,但基本都是4核、8核、16核,但电脑却可以同时打开20多个应用程序。前面讲过同一时刻,一个CPU只能运行一个程序,这与上述现象发生了矛盾,原因如下:
- 操作系统会将CPU拆分为一段段时间的运行片,轮流分配给不同的程序(从调度执行的角度即线程)。具体来讲ÿ