一、进程
进程可以认为是程序执行时的一个实例.进程是系统进行资源分配的独立的实体,且每个进程拥有独立
的地址空间.一个进程无法直接访问另一个进程的变量和数据结构,如果希望让一个进程访问另一个进程
的资源,需要使用进程间通信,比如:管道,有名管道,信号,信号量,消息队列,套接字等.
一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间.线程和进程的一个主要区别是,同一程序内
的多个线程会共享部分状态,多个线程可以读写同一块内存(一个进程无法直接访问另一进程的内存).同时
每个线程还拥有自己的寄存器和栈,其他线程可以读写这些栈内存.
线程是进程的一个特定执行路径.一个线程修改了进程中的资源,它的兄弟线程可以立即看到这种变化.
以下是小结:
a.进程是系统进行资源分配的基本单位,有独立的内存地址空间,是对某个数据集的执行过程;
线程是CPU调度的基本单元,没有独立地址空间有独立的栈,局部变量,寄存器,程序计数器等.
b.创建进程的开销大,包括创建虚拟地址空间等需要大量系统资源;创建线程开销小,基本上只有一个内核对象和
一个堆栈.
c.一个进程切换开销大,线程切换开销小;进程间通信开销大,线程间通信开销小.
d.线程属于进程,不能独立执行.每一个进程至少有一个线程,称为主线程.
二、调度和作业
三、进程并发和线程并发