相关疑难解决方法(0)

Spinlock与Semaphore

信号量和自旋锁之间的基本区别是什么?

什么时候我们会使用信号量而不是自旋锁?

c c++ unix linux operating-system

112
推荐指数
7
解决办法
7万
查看次数

Pthread队列系统

我正在处理有关 pthreads 的作业。我是新人,以前从未接触过 pthreads。你们中是否有任何示例代码或资源可以帮助我完成任务?

\n\n

这是我的作业详细信息。一个关于队列系统的pthread程序:

\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

任何帮助将不胜感激。\n谢谢。

\n

c c++ pthreads

4
推荐指数
1
解决办法
3796
查看次数

标签 统计

c ×2

c++ ×2

linux ×1

operating-system ×1

pthreads ×1

unix ×1