首页 > 代码库 > 生产者消费者模型中线程怎样正常退出

生产者消费者模型中线程怎样正常退出

生产者:不停地往队列中放数据

消费者:不停地从队列中拿数据

两者通过两个信号量同步


当生产者不再生产数据时,消费者正好挂在一个信号量上,处于睡眠状态,这时候pthread_join也会一直挂着的。该怎样使得消费者正常退出呢?

我的做法是让生产者在往队列中放一个【结束数据】,也就是一个标识,消费者拿到数据后,如果这个数据是结束标识则自杀退出。