1.并发与并行
并发:指多个或者多个事件在同一个时间段内发生。/*交替执行*/
并行:指两个或者多个事件在同一时刻发生(同时发生)。/*同时执行*/
2.进程与线程
进程:在一个操作系统中,每个独立执行的程序都可称之为一个进程,也就是“正在运行的程序”。在计算机中,所有的应用程序都是由CPU执行的,对于一个CPU而言,在某个时间点只能运行一个程序,也就是说只能执行一个进程。操作系统会为每一个进程分配一段有限的CPU使用时间,CPU在这段时间中执行某个进程,然后会在下一段时间切换到另一个进程中去执行,由于CPU运行速度非常快,能在极短的时间内在不同的进程之间进行切换,所以给人以同时执行多个程序的感觉。(进入到内存的程序叫进程)
线程:线程属于进程,是进程中的一个执行单元,负责进程的执行。在多任务操作系统中,每个运行的程序都是一个进程,用来执行不同的任务,而在一个进程中还可以有多个执行单元同时运行,来同时完成一个或多个程序任务,这些执行单元可以看做程序执行的一条条线索,被称之为线程。操作系统中的每一个进程中都至少存在一个线程,当一个Java程序启动时,就会产生一个进程,该进程中会默认创建一个线程,在这个线程上会运行main()方法中的代码。
单核心单线程CPU:cpu在多个线程之间做高速的运行,轮流执行多个线程,效率低,切换的速度(1/n毫秒)。
多线程:效率高,多个线程之间不影响。例如4核心8线程,速度是单线程cpu的8倍(每个任务被执行到的几率被提高了8倍)