线程:有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
轻型实体 独立调度和分派的基本单位 可并发执行 共享进程资源
进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
线程与进程的区别:
(1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
(2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
(3)调度和切换:线程上下文切换比进程上下文切换要快得多。
(4)在多线程OS中,线程不是一个可执行的实体。
注意:
(1)系统的资源管理是以进程为单位的,多线程系统中任何一个线程的错误都会导致整个进程崩溃。所以多进程的一个明显的好处就是系统的可用性高。
(2)进程是资源分配的最小单位,线程是CPU调度的最小单位。
(3)多线程唯一优于多进程的地方是资源占有率比较少,通信方便。