有沒有什么辦法可以通過引入一些場景或使其更復雜一點來使同步中的消費者/生產者問題變得更高級。我問這個的原因是因為在更簡單的層面上,生產者/消費者問題太容易了,我必須在學期末做一個專案,所以如果有人知道我怎樣才能做出一個像樣的中級/稍微高級的水平這個問題的版本來實作。
謝謝。
uj5u.com熱心網友回復:
在某些情況下會長矛嗎?如果消費者執行緒傳入一個本地指標的地址來放置出隊的專案,生產者執行緒可以直接加載結果。這意味著一旦設定運行,消費者就不需要弄亂任何互斥鎖 - 它已經加載了出隊的專案。這意味著生產者執行緒可以識別哪個執行緒將被設定為運行,因此每個消費者需要自己的事件/condvar/信號量來等待,并且同步存盤在佇列中的容器中......或......
..您可以將同步參考存盤在消費者 arg 指向的位置,直到需要它發出信號,然后釋放該本地以存盤出隊的專案。這意味著在 PC 佇列結構中只需要一個指標容器。
這種詭計有幫助,甚至可靠嗎?
是的:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/470142.html