首页 > 试题广场 >

关于生产者-消费者问题描述正确的是( )

[单选题]
关于生产者-消费者问题描述正确的是(    )
  • 缓冲池中有n个缓冲区,所以empty为n
  • 两个进程有同步也有互斥关系
  • 生产者进程中wait(empty)可以和wait(mutex)交换顺序
  • 生产者进程中(mutex)的作用是是可决定是否可以访问缓冲区
- 选项A:在生产者 - 消费者问题中, empty 信号量表示空缓冲区的数量,初始时缓冲池有 n 个空缓冲区,所以 empty 初始值为 n ,但随着生产者生产和消费者消费, empty 的值会动态变化,并非一直为 n ,所以A错误。 ​ - 选项B:生产者和消费者进程之间,生产者生产产品后消费者才能消费(同步关系);同时,多个生产者或多个消费者对缓冲池的访问需要互斥(互斥关系),所以两个进程有同步也有互斥关系,B正确。 ​ - 选项C:如果交换 wait(empty) 和 wait(mutex) 的顺序,可能会导致死锁。比如当缓冲池已满时,生产者进程先获取 mutex 锁,然后执行 wait(empty) ,此时生产者进程会被阻塞,但它持有 mutex 锁,消费者进程无法获取 mutex 锁来消费产品,进而无法释放 empty 信号量,导致死锁,所以C错误。 ​ - 选项D: mutex 信号量的作用是实现对缓冲池的互斥访问,而决定是否可以访问缓冲区的是 empty (生产者看是否有空缓冲区)和 full (消费者看是否有满缓冲区)信号量,所以D错误。
发表于 2025-09-15 15:48:36 回复(0)
不懂
发表于 2025-08-23 10:28:56 回复(0)