1、概念的区别
进程:是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配的基本单位,也是调度运行的基本单位。一个进程中可以包含多个线程。
线程:是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的、可以独立运行的基本单位,除运行中必不可少的资源外,基本上不拥有自己的系统资源。
2、成立要素
进程四大要素:
(1)一段可供进程执行的程序
(2)独立的内核堆栈空间
(3)进程控制块
(4)独立的存储空间:即拥有专有的用户空间
线程只有上述前三条,并不具备独立的存储空间。
3、进程间通信和线程间通信方式
进程间通信IPC:管道(pipe)、有名管道(fifo)、内存共享映射、信号量(semaphore)、消息队列(message queue)、信号(signal)、套接字(socket)
线程间通信方式:共享内存、管道
4、调度与切换
线程上下文切换比进程上下文切换快得多