1. 程式人生 > >生產者消費者模型中執行緒怎樣正常退出

生產者消費者模型中執行緒怎樣正常退出

生產者:不停地往佇列中放資料

消費者:不停地從佇列中拿資料

兩者通過兩個訊號量同步

當生產者不再生產資料時,消費者正好掛在一個訊號量上,處於睡眠狀態,這時候pthread_join也會一直掛著的。該怎樣使得消費者正常退出呢?

我的做法是讓生產者在往佇列中放一個【結束資料】,也就是一個標識,消費者拿到資料後,如果這個資料是結束標識則自殺退出。