我正在处理有关 pthreads 的作业。我是新人,以前从未接触过 pthreads。你们中是否有任何示例代码或资源可以帮助我完成任务?
\n\n这是我的作业详细信息。一个关于队列系统的pthread程序:
\n\n\n\n\n为牙科诊所\xe2\x80\x99s 排队系统编写一个 C/C++ Pthread 程序,该程序声明一个\n 大小为 N 的整数数组,其中 N 是当天的最大队列数。pthread 程序使用两个线程。
\n\n每当有新的牙科预约时,第一个线程(创建者)将队列号一个接一个地放入数组中。每当牙医看过病人时,第二个线程(删除程序)就会从数组中删除队列号。这是以 FIFO 方式(先进先出)完成的。\n 创建者的算法如下:
\n\n\xe2\x80\xa2 如果数组未满,则在其中放入一个新数字(数字从 1 \n 开始,每次递增 1,因此创建者创建队列编号 1、2、3 等)
\n\n\xe2\x80\xa2 随机休眠 1 到 10 秒
\n\n\xe2\x80\xa2 重复
\n\n去除器的算法如下:
\n\n\xe2\x80\xa2 如果数组不为空,则删除其最小的队列号。
\n\n\xe2\x80\xa2 随机休眠 1 到 10 秒
\n\n\xe2\x80\xa2 重复
\n\n您应该使用互斥锁来保护必须保护的事物。每个线程\n 应该在屏幕上打印它正在执行的操作(例如:“数字13 已添加到队列中”、\n“数字7 已从队列中删除”等)。该程序应该永远运行。
\n
任何帮助将不胜感激。\n谢谢。
\n小智 5
对于一般从 pthreads 开始的人来说,这是一个很好的网站,其中可能提供比您需要的更多信息(但我喜欢细节)。它涵盖了 pthreads 等的许多基础知识。如果您更喜欢死树教程,那么这本书非常好,它为您提供了 Linux API 或核心库(如果您想这样称呼它)的大多数功能的良好基础。这个stackoverflow 问题非常简洁地讨论了互斥体与信号量。
最后,我喜欢这个网站,因为它融合了 Linux 线程和同步。
希望这些能为您提供一些阅读材料。弄清楚如何处理线程,然后如何同步它们,然后解决你的问题。
| 归档时间: |
|
| 查看次数: |
3796 次 |
| 最近记录: |