首页 > 编程笔记 > Java笔记 阅读:12

并发是什么,和并行、串行有什么区别?(新手必看)

如果使用一台只有一个 CPU 的计算机操作一个含有多个线程的程序,那么这台计算机的 CPU 不可能同时执行两个或者更多个线程。

为了能够保证这个程序的正常运行,只有先把 CPU 的运行时间划分成若干个时间段,再把这些时间段分配给各个线程,才能够保证各个线程均被执行。只不过,在一个时间段内,只能执行一个线程,而其他线程均处于等待状态,这种处理方式就称作“并发”。

学习并发编程之前,必须理解“串行”、“并行”、“并发”的区别:
为了方便理解,使用如图 1 所示的示意图展示“串行”、“并行”、“并发”的区别。


图 1 “串行”“并行”“并发”的区别

所谓并发编程,指的是让一个 CPU 在某一个时间段内执行一个含有多个线程的程序,其中这些线程被这个 CPU 轮流穿插着执行。

并发编程的优势在于当一个 CPU 执行含有多个线程的程序时,另一个线程不必等待当前线程被执行完毕后再被执行,进而提高了使用 CPU 的效率。

并发编程具有 3 个特性:原子性、可见性和有序性。具体如下:
由于大数据时代的到来,使得高并发在程序开发过程中成为了常态。此外,并发编程也成为了程序开发人员的硬性要求。

相关文章