多选题 4.  在有N个缓冲区的生产者消费者的问题中,下列叙述中哪些是错误的?______
    producer()
    { int item;
    while(TRUE){
    item=produce_item();
    P(empty);
    P(mutex);
    insert_item(item);
    V(mutex)
    V(full);}}
    consumer()
    {int item;
    while(TRUE){
    P(full);
    P(mutex);
    item=remove_item();
    V(mutex);
    V(empty);
    consume_item(item);}}
【正确答案】 A、D
【答案解析】 empty信号量表明的是空闲资源数目,即为N,所以其初始值为N;full信号量表明的是满的资源数目,本题中为0,所以其初始值为0;mutex信号量用于实现互斥访问,初始值为1。P(full)和P(mutex)两条语句如果颠倒顺序,可能导致死锁。因此,本题答案选择A、D选项。