我在使用 C 编程的操作系统课上为作业作业编写 Pseduocode 时遇到了一些麻烦。
您将实现一个生产者-消费者程序,其中包含 N 个元素、P 个生产者线程和 C 个消费者线程的有界缓冲区队列(N、P 和 C 应该是程序的命令行参数,以及三个附加参数 X、Ptime 和Ctime,如下所述)。 每个
生产者线程应该将 X 个不同的数字排入队列(在每次调用 Enqueue 之间旋转等待 Ptime*100,000 个周期)。每个消费者线程
都应该从队列中取出 P*X/C 项(在每次调用 Dequeue 之间旋转等待 Ctime*100,000 个周期)。 主程序应该创建/初始化有界缓冲区队列,打印时间戳,产生 C 消费者线程和 P
生产者线程,等待所有线程完成,然后打印另一个时间戳和执行持续时间。
我的主要困难是通过旋转等待变量乘以 100,000 来理解我的教授的意思。我将令我困惑的部分加粗。
我知道时间戳将用于打印每个线程之间的差异。我们目前正在使用信号量并实现同步。对上述查询的任何建议将不胜感激。