欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

并发与并行的区别

程序员文章站 2022-03-26 21:55:47
只有当CPU至少有两个核心的时候才有可能并行,而能不能并发与CPU的核心数无关,单核CPU也可以实现并发。 并行是一种并发的特殊情况,并行要求必须是时间上的同时,而并发只要求逻辑上同时就可以。 举个例子:大学的时候学生都会对老师的讲课质量做一个评价(虽然没什么卵用),老师也会给学生一个成绩。要想使评 ......

  只有当CPU至少有两个核心的时候才有可能并行,而能不能并发与CPU的核心数无关,单核CPU也可以实现并发。
  并行是一种并发的特殊情况,并行要求必须是时间上的同时,而并发只要求逻辑上同时就可以。
  举个例子:大学的时候学生都会对老师的讲课质量做一个评价(虽然没什么卵用),老师也会给学生一个成绩。要想使评价尽可能的公平,二者的评价就要同时完成,这个同时强调的就是逻辑上的同时。学生在期末考试之前就可以提交对老师的评价,只要要求老师必须提交学生的成绩之后才能看到评价就可以保证逻辑上的同时,老师什么时候提交成绩都可以。如果时间上的同时,那么老师和同学必须同时在教务系统中点击提交按钮。
  逻辑上的同时,大致可以理解成:虽然不是时间上的同时,但是和时间上的同时等效。多个线程并发时,每个线程都会认为自己独自占有CPU。即使是单个CPU运行多线程也可能导致死锁,因为拿到锁的线程即使当前没有占用CPU的时间片,它拥有的锁也不会被释放,多线程的并发的特性与CPU核心数毫无关系。

  公众号:今日说码。关注我的公众号,可查看连载文章。遇到不理解的问题,直接在公众号留言即可。