簡體   English   中英

如何在C ++中實現阻塞隊列以處理線程之間的數據?

[英]How to implement a blocking queue in C++ to process data between threads?

我需要制作一個具有兩個線程的應用程序。 一個將產生數據(文件路徑和對該路徑要執行的操作-創建/更新/刪除),而另一個線程將需要使用此數據並實際執行任務。

為此,我認為要有一個隊列,從一個線程將數據放入隊列,從另一個線程取數據並按順序執行操作。

我的問題是如何使這些線程之間的數據可共享,然后如何在等待數據放入隊列時使第二個線程阻塞? 僅僅有一段時間檢查隊列是否不為空,會像瘋了一樣吞噬CPU。 每隔幾毫秒或幾秒鍾添加一次“睡眠”檢查將沒有效率。

如何才能做到這一點? 有沒有實現此類數據的庫?

為您提供一些示例:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM