从概念上理解进程、线程和程序
进程:一个具有独立功能的程序在某个数据集合上的执行过程。进程具有动态性、并发性、独立性、制约性等特点。
线程:有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。
程序:计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。程序是一个指令序列。
进程和线程的区别和联系
地位:进程是系统进行资源分配和调度的基本单位,是被系统独立调度和分派的基本单位
资源:进程创建时,系统会为每个进程分配资源;线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
开销:进程切换开销大,线程切换开销小。每个进程有独立的代码和数据区;同一类线程共享代码和数据区,每个线程拥有自己的运行栈和程序计数器。
通信:线程通信方便(静态共享内存、全局变量),进程通信实现复杂(管道、信号量、共享内存、消息队列)。
进程和程序的区别和联系
联系:
进程的组成包括程序。进程=程序+数据+进程控制块(PCB)
一个程序可以对应几个进程。
区别:
进程是执行着的程序,是动态的;程序是一组指令的集合,是静态的。
程序是永久的;进程是暂时的、有生命周期的。