先来说一下条件变量的概念:

  • 条件变量是一种相对复杂的线程同步的方法
  • 条件变量允许线程睡眠,直到满足某种条件
  • 当满足条件的时候,可以向该线程信号,通知唤醒

解释条件变量,还是应用到之前使用过的生产者-消费者模型:

操作系统专栏——线程同步之条件变量
简单来说,当缓冲区小于等于0的时候,不允许消费者消费,消费者必须等待,当缓冲区满的时候,不允许生产者往缓冲区生产,生产者必须等待。

现在我们使用了条件变量,就可以针对这个模型施加更加细节的约束。

1. 当缓冲区为0后,生产者生产一个产品的时候,立刻唤醒可能等待的消费者。

2. 当缓冲区为满了后,当消费者消费一个产品的时候,立刻唤醒可能等待的生产者。

相关文章:

  • 2021-11-22
  • 2021-08-09
  • 2021-11-18
  • 2021-07-31
  • 2022-12-23
  • 2021-08-27
  • 2021-11-18
猜你喜欢
  • 2021-04-23
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案