进程与线程
(一)基本概念
1、进程
对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发
2、线程
- 进程的子任务,是任务调度和系统执行(CPU调度和分派)的基本单位,用于保证程序的实时性,实现进程内部的并发;
- 线程是操作系统可识别的最小执行和调度单位。每个线程都独占一个虚拟处理器:独自的寄存器组,指令计数器、处理器状态。
- 每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他内核资源。
(1) 共享的资源有
a. 堆
由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
b. 全局变量
它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
c. 静态变量
虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
d. 文件等公用资源
这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了