一、什么是并发

并发是指两个或多个事件在同一时间间隔内同时发生。

在计算机领域中,并发指是多个任务(多道程序)可以被同时执行,但在某一时刻只有一个任务(程序)能被执行。

如:现在的计算机,人们已经可以一边开着音乐播放程序听音乐,同时一边开着浏览器网上冲浪。


二、什么是并行、与并发的区别是什么?

并行是指两个或多个事件在同一时刻发生。

并行与并发两者的区别:

之所以出现并发与并行两种描述,主要跟处理器有关。

在早期时的处理器一般都是单核处理器,且计算机通常只有单个处理器。以上述边听音乐与上网的例子中,音乐程序与浏览器可以同时被执行。但这只是表面现象,实际上如果处理器只是一个,并且是单核的,在某一时刻点上,只有一个程序能被执行,只是由于处理器执行速度快,一直在来回切换执行,给人感觉程序是在同时运行。

然而,如果计算机有多个处理器或者是多核处理器,那么这个同时执行就是真实发生的,即在某一时刻点上可以有多个程序同时被执行。这也被称之为并行。


三、什么是进程

进程是一个程序被处理器调度,再被加载运行的一个过程。简单理解,可以认为一个运行中的程序可以被称之为进程。



四、什么是线程

线程是指在一个进程中,可被独立运行的程序片段。

一个进程中存在一到多个线程,同一个进程中的所有线程可以共享进程的内存地址空间,所以这些线程可以访问相同的变量,并在同一个堆上分配对象。另外,每个线程都有各自的程序计数器,栈、局部变量等。因此,线程通常也被称为轻量级进程。

在大多数现代操作系统中,都是以线程为基本的调试单位,而不是进程,所以多个程序并发执行,可以认为是多个线程在并发执行。