1 实验一生产者消费者问题一、实验目的1.掌握进程(线程)的同步与互斥。2.掌握生产者消费者问题的实现方法。3.掌握多线程编程方法。二、相关函数VC 提供一系列函数用于实现多线程编程以及线程的互斥与同步。(1)创建线程HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); 该 函 数 在 其 调 用 进 程 的 进 程 空 间 里 创 建 一 个 新 的 线 程 , 并 返 回 已 建 线 程 的 句 柄 , 其 中 各参 数 说 明 如 下 :lpThreadAttributes: 指 向 一 个SECURITY_ATTRIBUTES 结 构 的 指 针 , 该 结 构 决 定 了 线程 的 安 全 属 性 , 一 般 置 为NULL ;dwStackSize: 指 定 了 线 程 的 堆 栈 深 度 , 一 般 都 设 置 为 0;lpStartAddress:表 示 新 线 程 开 始 执 行 时 代 码 所 在 函 数 的 地 址 ,即 线 程 的 起 始 地 址 。main()函 数 是 主 线 程 的 入 口 函 数 , 同 样 , 新 创 建 的 线 程 也 需 要 一 个 入 口 函 数 , lpStartAddress就 是 指 示 该 函 数 的 地 址 。 并 且 这 个 函 数 的 定 义 应 遵 循 下 面 的 声 明 形 式DWORD WINAPI ThreadProc(LPVOID lpParameter);lpParameter: 指 定 了 线 程 执 行 时 传 送 给 线 程 的 32 位 参 数 , 即 线 程 函 数 的 参 数 ;dwCreationFlags: 控 制 线 程 创 建 的 附 加 标 志 , 可 以 取 两 种 值 。 如 果 该 参 数 为 0, 线 程 在被 创 建 后 就 会 立 即 开 始 执 行 ; 如 果 该 参 数 为 CREATE_SUSPENDED, 则 系 统 产 生 线 程 后 ,该 线 程 处 于 阻 塞 状 态 , 并 不 马 上 执 行 , 直 至 函 数 ResumeThread被 调 用 ;lpThreadId: 该 参 数 返 回 所 创 建 线 程 的 ID ;函 数 返 回 值 : 如 果 创 建 成 功 则 返 回 线 程 的 句 柄 , 否 则 返 回 NULL 。(2)创建互斥对象(用于互斥)HANDLE CreateMutex(LPSECURITY_ATTR...