并行跟并发有什么区别?

从操作系统的角度来看,线程是CPU分配的最小执行单元。

  • 并行是指在同一时刻,两个线程同时执行。这要求系统拥有两个CPU,分别用于执行这两个线程。
  • 并发是指在同一时刻,只有一个线程在执行,但在一段时间内,两个线程都有执行的机会。实现并发的关键在于CPU的线程切换,由于切换时间极短,对用户来说几乎无感知。

可以用去食堂打饭的例子来说明,如果是并行,我们在多个窗口排队,几位工作人员同时为我们打菜;而如果是并发,我们挤在一个窗口,工作人员先给这个人打一勺,再快速地给那个人打一勺。

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题