1 进程(Process)
进程是操作系统分配和调度资源的最小单位,是程序在运行时占据的全部资源的总和,包括CPU、内存、网络、硬盘IO等,它是一种抽象的概念。比如打开一个记事本就启动了一个记事本进程。
2 线程(Thread)
线程是轻量化的进程,是程序执行的最小单元。在一个进程内部,要同时做多件事情,就需要同时运行多个子任务,把这些子任务叫做线程。同一个进程的多个线程可以并发执行。
3 进程与线程的关系
- 进程不能单独执行,它只是资源的集合;进程要操作CPU,必须先创建一个线程,通过线程操作
- 一个进程包含至少包含1个线程,一个线程必须隶属于某个进程
- 进程被销毁,该进程所拥有的线程也将会被强制退出并清除
- 进程之间相互独立,通信比较困难;同一进程下的各个线程之间会共享程序的内存空间,通信较易
- 线程的创建、启动比进程快
4 并行与并发
并行,英文为Parallelism,指同时执行多个任务,适用于多核CPU或GPU,不同的核心在同时执行任务操作
并发,英文为Concurrency, 指利用CPU时间分片技术,宏观上实现同时做多件任务的效果,但微观上每个CPU在同一时刻只能执行一个任务
5 超线程
超线程技术可将CPU的一个物理内核模拟成两个逻辑内核,充分利用了CPU内部的闲置资源,让单个处理器也可使用线程级并行计算,从而提高性能。但它并不像两个真正的CPU一样,每个CPU都拥有独立的资源。当两个线程同时需要某一资源时,其中一个要暂停,并让出资源,直到该资源闲置才能继续进行计算。因此超线程的性能并不等于两颗CPU的性能。
6 同步与异步
用一次方法的调用来形容同步和异步
同步方法一旦发起调用,必须等待完成之后才能继续
异步方法不等待方法完成就执行下一行,进行后续的操作。而该方法被由一个新的线程完成计算