[英]Oboe C++ Threads - How to read and write to a queue without blocking
[英]How to implement a blocking queue in C++ to process data between threads?
我需要制作一個具有兩個線程的應用程序。 一個將產生數據(文件路徑和對該路徑要執行的操作-創建/更新/刪除),而另一個線程將需要使用此數據並實際執行任務。
為此,我認為要有一個隊列,從一個線程將數據放入隊列,從另一個線程取數據並按順序執行操作。
我的問題是如何使這些線程之間的數據可共享,然后如何在等待數據放入隊列時使第二個線程阻塞? 僅僅有一段時間檢查隊列是否不為空,會像瘋了一樣吞噬CPU。 每隔幾毫秒或幾秒鍾添加一次“睡眠”檢查將沒有效率。
如何才能做到這一點? 有沒有實現此類數據的庫?
為您提供一些示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.