我被分配了并发编程的任务,编写一个男女通用的厕所。对于这个主题,这似乎是一个足够普遍的任务。对于那些不熟悉的人,设置了规则(至少在这种情况下)
- 浴室男女均可使用,但不能同时使用。
- 一次最多可以有 5 个人上厕所。
- 如果你使用信号量,你必须自己实现它。
在这个主题之前我已经很长时间没有编码了,我的知识已经生疏了。我最初只用计数器编码,并且在理解信息流时遇到了问题,尽管程序和那个版本一无所获!
所以我又开始了,我想知道我应该怎么做。我最初的想法是有 1 个厕所,用二进制信号量实现,浴室监视器,限制为 5 个。
我还读到,问题背后的想法最适合每个人都是线程的实现。如果是这种情况,它可能会很混乱,因为我已经尝试过一次线程池(几周前)并且它从来没有为我运行过。:-/
目前我没有要显示的代码,所以关于如何设置的大纲是我最关心的问题。