前 几 天 搞 定 了 C++的 多 线 程 编 程 , 今 天 闲 来 无 事 小 做 总 结 ! 【线 程 的 概念】 为了 了 解线 程 的 概念, 我们必须先讨论一下进程 的 概念。 一个进程 通常定 义为程 序的 一个实例。在 Win32 中, 进程 占据 4GB 的 地址空间。与它们在 MS-DOS 和 16 位 Window s 操作系统中不同, Win32 进程 是没有活力的 。这就是说, 一个 Win32 进程 并不执行什么指令, 它只是占据着 4GB的 地址空间, 此空间中有应用程 序 EXE 文件的 代码和数据。EXE 需要的 任意 DLL也将它们的 代码和数据装入到进程 的 地址空间。除了 地址空间, 进程 还占有某些资源, 比如文件、动态内存分配和线 程 。当进程 终止时, 在它生命期中创建的 各种资源将被清除。 但是进程 是没有活力的 ,它只是一个静态的 概念。为了 让进程 完成一些工作,进程 必须至少占有一个线 程 , 所以线 程 是描述进程 内的 执行, 正是线 程 负责执行包含在进程 的 地址空间中的 代码。实际上, 单个进程 可以包含几 个线 程 , 它们可以同时执行进程 的 地址空间中的 代码。为了 做 到这一点, 每个线 程 有自己的 一组CPU 寄存器和堆栈。 每个进程 至少有一个线 程 在执行其地址空间中的 代码, 如果没有线 程 执行进程 地址空间中的 代码, 进程 也就没有继续存在的 理由, 系统将自动清除进程 及其地址空间。为了 运行所有这些线 程 , 操作系统为每个独立线 程 安排一些CPU 时间, 操作系统以轮转方式向线 程 提供时间片, 这就给人一种假象, 好象这些线 程都在同时运行。创建一个 Win32 进程 时, 它的 第一个线 程 称为主线 程 , 它 由系统自动生成, 然后可由这个主线 程 生成额外的 线 程 , 这些线 程 , 又可生成更多 的线 程 。 【 多 线 程 编 程 的 步 骤 】 1、 编 写 线 程 函 数 所 有 线 程 必 须 从 一 个 指 定 的 函 数 开 始 执 行 ,该函 数 称为线 程 函 数 ,它必 须 具有 下列原型: DWORDWINAPIYourThreadFunc(LPVOIDlpvThreadParm); 该函 数 输入一 个 LPVOID 型的 参数 ,可以是一 个 DWORD 型的 整数 ,也可以是一 个 指 向一 个 缓冲区的 指 针, 返回一 个DWORD 型的 值。...