程序
定义:通常为二进制文件存放在存储媒介中(硬盘,光驱,软盘等),已物理文件的形式存在。
启动程序,通常要运行某个文件,这个文件就是程序,程序其实是存放在磁盘中的一个二进制文件。
进程
程序被触发后,执行者的权限与属性,程序的程序代码与所需要的数据等都会被加载到内存中,操作系统给予这个内存内的单元
一个标识符(PID),可以说进程就是一个运行中的程序。
用户在启动程序之后,程序会被加载到内存之中,成为一个个体,那就是进程。运行一个程序5次就产生5个进程。
线程
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
由于同一进程的多个线程共享同一地址空间,所以代码段,数据段是共享的,如果定义一个函数(存储在代码段),各线程都可以进行调用,如果定义个全局变量(存储在数据段),在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:
概括一下:
程序是一个文件存放在硬盘上。
进程是正在运行的程序在内存中的单元。
线程 与进程类似,不过更轻量级,是进程下更小的单元。
参考内容:Linux进程与线程的区别