我前段时间遇到一个问题,我不确定如何回答,问题输入如下:任何人都可以让我知道如何使用C ++进行此操作
编写代码以帮助教授和他/她的学生在办公时间内同步。当然,如果周围没有学生提问,那么教授想要小睡一下;如果有学生想提问,他们必须彼此同步并与教授同步 任何时候只有一个人在说话, 每个学生的问题都由教授回答,并且 在教授回答完上一个问题之前,没有学生提出另一个问题。 您将编写四个过程:AnswerStart(),AnswerDone(),QuestionStart()和QuestionDone()。 教授循环运行代码:AnswerStart();给出答案; AnswerDone()。在问到问题之前,AnswerStart不会返回。每个学生循环运行代码:QuestionStart();问问题; QuestionDone()。在轮到学生提问之前,QuestionStart()不会返回。由于教授们认为学生不等待答案是不礼貌的,因此在教授完成回答问题之前,问题()不应该返回。
答案 0 :(得分:1)
Readers/Writer locks可能就是你要找的东西。
这听起来像是一个家庭作业问题,根据community guidelines你能告诉我们你的尝试吗?
答案 1 :(得分:1)
我假设这是一个课堂作业,所以我不会泄露答案。
我会用活动对象来处理这个问题。
答案 2 :(得分:1)
您将不得不对变量进行序列化访问并使用锁来确保一次不会发生多个操作。本文档的第一部分解释了如何在c ++中使用锁。希望这会指出你正确的方向。
http://www.cs.utexas.edu/~lavender/courses/cs371/lectures/lecture-10.pdf