还记得上学那会儿听到这两个词略模棱两可,现在谈谈自己对其的理解,衡量一个事物要有一个标准,讨论并发和并行要以cpu作为一个相对标尺。
CPU即中央处理器,单核cpu里不存在并行,为什么要这么说呢?并行是同一时刻可以去做不同的事情,重点在同一时刻,并发指的是同一时间段可以做不同的事情,重点在同一时间段,不过由于时间片为毫秒级别对于我们人感知好像也是多任务同时在执行,对于cpu来说同一时刻只会执行一条指令,多任务同时执行不过是时间片轮转调度任务处理的结果,比如cpu执行了某一条指令执行10ms之后又去执行另外一条指令了,任务来回进行切换给人的感觉就是多任务同时在处理。
即使我们在单cpu里采用多线程去跑任务也是并发而不是并行,多核cpu是可以并行处理
任务的,讨论并行和并发基于单核cpu和多核cpu去讨论吧,那么什么是线程呢?线程是操作系统调度和资源分配的最小单位,说了线程这里简单说下进程的理解吧,在windows任务管理器里面每一个以.exe结尾的程序实体都可以当做一个进程,进程是程序,数据,程序控制段的简单概括,比如QQ音乐,音视频播放器等都可以称为进程概念的一种抽象实现,到这里并行和并发的理解就说到这了,如有不正之处请多多指教。
并行在我们生活中也很常见,我们去奶茶店站在不同窗口购买奶茶是并行的一种方式。