大家好,今天主要和大家聊一聊,如何使用Linux中线程同步方式中的条件变量。

条件变量是线程可用的另一种同步机制,条件变量用于自动阻塞线程,知道某个特定事件或某个条件满足为止,通常情况下,条件变量是和互斥锁一起搭配使用的。使用条件变量主要包括两个动作:
1、一个线程等待某个条件满足而被阻塞。
2、另一个线程中,条件满足时发出“信号”。
例子:为了说明这个问题,来看一个没有使用条件变量的例子,生产者---消费者模式,生产者这边负责生产产 品、而消费者负责消费产品,对于消费者来说,没有产品的时候只能等待产品出来,有产品就使用它。
这里我们使用一个变量来表示这个产品,生产者生产一件产品变量加1,消费者消费一次变量减1.
#include #include #include #include #include static pthread_mutex_t mutex;static int g_avail = 0;/* 消费者线程 */static void *consumer_thread(