首页 > 试题广场 >

生产者与消费者模型是一个非常经典的同步与互斥问题,如下伪码实

[单选题]
生产者与消费者模型是一个非常经典的同步与互斥问题,如下伪码实现了简单的消费者的功能(生产者的功能是往队列里面添加元素,消费者的功能是从队列里面取元素)
void consumption() {
    while(____){
         ____;
    }
    P(mutex);
    往队列里面取一个元素;
    V(mutex);
    ————————;
}
里面的P,V就是指PV操作,mutex是互斥信号量;现有如下方法:
isFull() : 表示队列元素满了
isEmpty(): 表示队列元素为空
m_notFull.wait(): 阻塞当前进程,直到队列元素不满
m_notFull.notify(): 队列元素不满了,唤醒某个进程
m_notEmpty.wait():阻塞当前进程,直到队列元素不为空
m_notEmpty.notify():队列元素不为空了,唤醒某个进程

请你按选好方法,填到上面空行,完成消费者的功能
  • isFull(), m_notFull.wait(),  m_notFull.notify()
  • isFull(), m_notFull.wait(),  m_notEmpty.notify()
  • isFull(), m_notFull.notify(),  m_notEmpty.wait()
  • isEmpty(), m_notEmpty.wait(), m_notEmpty.notify()
  • isEmpty(), m_notEmpty.wait(), m_notFull.notify()
  • isEmpty(), m_notEmpty.notify(),  m_notFull.wait()
void consumption() {
    while(__isEmpty()__){
         __m_notEmpty.wait()__;
    }
    P(mutex);
    往队列里面取一个元素;
    V(mutex);
    ——m_notFull.notify()——————;
}
发表于 2023-12-10 19:58:31 回复(0)