0
我遇到以下問題
我有幾個線程(生產者)計算移動對象的位置和一個打印計算結果的線程(消費者)。每個線程都有自己的時間尺度。同步的問題是消費者只有在所有生產者計算打印時的位置時才能打印結果。換句話說,消費者必須將其當前時間與生產者的相同時間進行比較,並決定是否可以打印結果。我發現了一個類似的例子,其中同步信號量,但那裏只有一個生產者。有誰知道一個聰明的解決方案?多線程:多個生產者+一個消費者
我遇到以下問題
我有幾個線程(生產者)計算移動對象的位置和一個打印計算結果的線程(消費者)。每個線程都有自己的時間尺度。同步的問題是消費者只有在所有生產者計算打印時的位置時才能打印結果。換句話說,消費者必須將其當前時間與生產者的相同時間進行比較,並決定是否可以打印結果。我發現了一個類似的例子,其中同步信號量,但那裏只有一個生產者。有誰知道一個聰明的解決方案?多線程:多個生產者+一個消費者
消費者循環:
n
次n
生產者生產者循環(並行n
):
可用
編輯:如果生產者有一個緩衝區,而不是等待同步,那麼你可以這樣做:
C onsumer循環:
生產者循環(n
並行):
說「等待n次」是什麼意思?我必須鎖定** n **互斥鎖嗎?如果我理解你正確的話,生產者必須等待所有的數據將被處理,然後生成一個新的數據。我不認爲這是最好的解決方案。 –
對不起,我想你只有在每個人都完成後纔會跟製片人一起進行。我的意思是在循環中鎖定相同的互斥量'n'次。如果你能緩衝結果,你可以用另一種方式更有效率。 – Amadan