1.进程
进程是程序的一次执行过程,从代码加载、执行,直至完成的一个完整的过程。这个过程也是进程从产生、运行至消亡的过程。
程序与进程之间的关系:如同乐谱与一次演奏的关系。程序就是乐谱,进程按照这个乐谱进行的一次演奏。
2.线程
线程是一个控制流,也是一个执行过程,但执行单位比进程小。一个进程在其执行过程中可以产生多个线程,形成多条执行线索。
每条线索,即每个线程也有它自身的产生、运行和消亡的过程。
3.进程与线程比较
线程与进程比较,共同点都是程序的一个执行过程。
不同点是进程是一个实体,每个进程有自己的状态、专用数据线(独立内存资源);同一个进程下的现成共享进程的数据段。创建进程时,必须建立其专用的数据段;创建线程时不必建立新的数据段。线程不是能够独立运行的程序,而只是某个进程内的一个执行流。
线程的建立和线程间的切换速度大大超过进程,不需要数据段的保护和恢复。同时,又具备进程的大多数优点,所以线程的执行效率比进程的执行效率高。缺点是由于多个线程共享数据段,带来的数据访问过程中的互斥和同步问题,使系统管理变得复杂。
多线程在提高输入输出设备平行工作能力、有效利用系统资源、改善计算机通信及发挥硬件的多处理器功能等方面有很大的优势。