从一定意义上讲,进程就是一个具有一定独立功能的程序关于某个数据集合的一次执行过程,它是一个动态的概念。
进程是系统进行资源分配和调度的一个独立单位。
线程是进程中的一部分,是CPU调度和分配的基本单位,进程包含多个线程在运行。
线程自己基本上不具有系统资源,只拥有一点在运行时必不可少的资源,但是同一进程中的多个线程可以共享进程的全部资源。
一个线程可以创建和撤销另一个线程;同一进程中的多个线程可以并发执行。
线程与进程的区别:
a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见;进程有独立的地址空间;进程至少有一个线程。
b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
c.调度和切换:线程上下文切换比进程上下文切换要快得多。
d.在多线程OS中,进程不是一个可执行的实体。