程序是一段静态的代码,它是应用软件执行的蓝本。
进程是程序一次动态执行的过程,它对应着从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。并且,进程是操作系统中的概念,由操作系统调度,通过多进程是操作系统能同时运行多个任务程序。
线程是进程中可独立执行的子任务,一个进程可以含有一个或多个线程,每一个线程都有一个唯一的标识符。
进程和线程的区别为:进程空间大体分为数据区、代码区、栈区、堆区,多个进程的内部数据和状态都是完全独立的;而线程共享进程的数据区、代码区、堆区,只有栈区是独立的,所以线程切换比进程切换的代价小。
多线程技术使得单个程序内部可以在同一时刻执行多个代码段,完成不同的任务,这种机制称为多线程。