天天看點

Linux多線程,生産者消費者算法和條件變量的使用

接着上一篇博文,原來雙線程,現在為了實作 暫停/繼續 功能,又加了一個線程。第三線程使用條件信号量,當使用者按下S鍵,第三線程将檢測到,并且将ifpause置為1,然後輸出線程将在if語句成立後被條件信号量cond阻塞。

此時第三線程依然運作。

當檢測到按下R後,ifpause置為0,并且使用條件信号量喚醒輸出線程。

全局采用生産者/消費者算法。保證輸出線程和從檔案讀數字的線程互相合作正确。

第三線程調用的函數kbhit(),前面一堆語句是為了設定終端,以實作輸入字元無回顯。

本文出自 “” 部落格,請務必保留此出處

繼續閱讀