内存
每一个进程都关系到内存。内存就像是前面所说的活页笔记夹中的活页纸,它代表的意义完全得看纸面上写些什么而定。内存可以大致分为三种类型:
i Code
i Data
i Stack
Code
是程序的可执行部分,一定是只读(read only)性质。这是CPU 唯一允许执行的内存。可执行Windows NT 的两种芯片:Intel 芯片和RISC 芯片都有这项限制。
Data
是你的程序中的所有变量(不包括函数中的局部变量),可以区分为全局变量和静态变量两种。当然线程也可以使用malloc()或new 动态配置内存。
Stack
是你调用函数时所用的堆栈空间,其中有局部变量。每个线程产生时配有一个堆栈。如果不需要,操作系统会将它动态扩充。
所有这些内存对进程中的所有线程都是可用的。这在多线程程序中虽然带来很大的方便,却也带来很大的灾难。引自第11页