1. #include<iostream>: 包含输入输出流库。
  2. #include<cstdlib>: 包含C标准库函数。
  3. #include<ctime>: 包含时间函数库。
  4. #include<windows.h>: 包含Windows API函数库。
  5. using namespace std;: 使用标准命名空间。
  6. const int BUFFER_SIZE=10;: 定义缓冲区大小为10。
  7. int buffer[BUFFER_SIZE];: 定义缓冲区数组。
  8. int front,rear;: 定义缓冲区的前后指针。
  9. bool full;: 定义缓冲区是否满的标志。
  10. HANDLE Mutex;: 定义互斥体句柄。
  11. HANDLE Full;: 定义信号量句柄,表示缓冲区已满。
  12. HANDLE Empty;: 定义信号量句柄,表示缓冲区为空。
  13. void showBuffer(): 定义显示缓冲区函数。
  14. WaitForSingleObject(Empty,INFINITE);: 等待信号量Empty为1,表示缓冲区不为空,可以进行消费。
  15. WaitForSingleObject(Mutex,INFINITE);: 等待互斥体Mutex解锁。
  16. ReleaseMutex(Mutex);: 释放互斥体Mutex。
  17. ReleaseSemaphore(Full,1,NULL);: 释放信号量Full,表示缓冲区已满。
  18. CreateMutex(NULL,FALSE,NULL);: 创建一个互斥体。
  19. CreateSemaphore(NULL,0,5,NULL);: 创建一个初始值为0,最大值为5的信号量Full。
  20. CreateSemaphore(NULL,5,5,NULL);: 创建一个初始值为5,最大值为5的信号量Empty。
  21. CreateThread(NULL,0,producer,NULL,0,NULL);: 创建生产者线程。
  22. CreateThread(NULL,0,consumer,NULL,0,NULL);: 创建消费者线程。
  23. Sleep(400000);: 主线程休眠400000毫秒,即运行400秒。

原文地址: https://www.cveoy.top/t/topic/ocyR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录