我有一个我需要解决的问题,这是对问题的解释:
必须使用Threads和Semaphores实现此问题。
答案 0 :(得分:0)
建议:
1)我会有一个教师线程和N个学生线程(就像你一样)。
2)我会有一个信号量。
3)我会有一个 chair array (你的“队列”);每个元素初始化为-1。
4)每当教师看到学生时,他就会锁定阵列,挑选一名学生,“清理”椅子,然后解锁阵列。
5)每当学生想要等待时,他会检查是否有自由椅,锁定阵列,“设置”椅子,并解锁阵列。
6)一旦你知道你有多少学生,我就会“malloc()”,然后初步确定这些椅子阵列。
7)如果这是C ++,“老师”,“学生”和“主席”都将成为课程。
... IMHO