题目是这样的:
1 生产者消费者(网上查生产者和消费者的概念)消息队列 2 3 在网络编程2中有记载使用互斥锁和条件变量来解决生产者/消费者问题,在多线程编程中我们常常也需要解决生产者消费者问题。在实际项目中,我们也见到过很多解决类似问题的消息队列。 4 5 对于生产者,如果不考虑内存和队列大小问题,只需要往消息队列里推消息就可以了。对于消费者就要复杂一点了,在消息队列取空后,消费者可以循环轮询队列直到取到新的信息。 6 7 而在模拟这种消费者生产者行为可以用简单粗暴的方式来实现。 8 9 我们可以封装一个消息队列用来推消息和取消息,而生产者和消费者可以 10 11 While(){ 12 13 生产者的模拟产生 14 消费者的模拟产生 15 do(生产者or null, 消费者 or null)//例如:当生产者为null时,消费者且不为null时可以理解为当前只消耗不生产 16 } 17 18 可以发挥你们充分的想象力来处理各种边界问题,思维可以发散理解题目 19 20 考点1 实现消息队列 考点2 处理生产者和消费者的模拟 3处理边界问题
这个是我偷懒了一下,让前任组长出的题,当时也没细看,现在我就简单的分析一下这个题目。
首先,如果学过操作系统内这个的问题的话,都知道生产者和消费者是通过多线程实现。但是大一的孩纸应该还不会多线程编程并且应该也不知道这个经典问题,所以这个题的重点就在于查资料,了解这个问题的过程并模拟它。
关于模拟,题中只给出了一个比较简单的伪代码,下面我将给出我自己对这个题的理解:
因某种原因,此博客删除部分内容,过几天补上