(1)程序
:是为了完成特定任务,用某组语言编写的一组指令的集合。即指一段静态代码,静态对象。
(2)进程
:是程序一次执行过程,或是正在运行的一段程序。是一个动态的过程:有其自身的产生,存在,消亡的过程。-----生命周期
-
程序是静态的,进程是动态的。
-
进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域
(3)线程
:进程可进一步细化为线程,是一个程序内部的一条执行路径。
-
若一个进程同一时间并行执行多个线程,就是支持多线程的。
-
线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。
-
一个进程的多个线程共享相同的内存单元/内存地址空间——》他们从同一个堆中分配对象,可以访问相同的变量和对象。这使得线程间通信更加边界,高效。但多个线程操作共享资源的系统资源可能就会带来安全隐患。
(4)并行
:多CPU同时执行多个任务。
(5)并发
:一个CPU采用时间片同时执行多个任务。
何时需要多线程?
-
程序需要同时执行两个或多个任务。
-
程序需要实现一些需要等待的任务时,如用户输入,文件读写操作,网络操作,搜索等。
-
需要一些后台运行的程序时。