2013-06-23 31 views
0

我有一定的資源和兩個線程一個是生產者,另一個是消費者。 生產者每次更新資源的時間間隔和更新需要一些時間,我不希望消費者等待。我希望他在生產者更新時使用原有的資源值。 如何在不讓消費者等待的情況下同步這兩個線程生產者消費者併發性沒有等待POSIX

+1

什麼讓你現在等待? –

+1

POSIX線程互斥鎖和try-lock函數?見例如[這個老問題](http://stackoverflow.com/questions/9258308/how-to-use-pthread-mutex-trylock)及其答案。然後,消費者會嘗試定期輪詢資源,如果它無法鎖定互斥量,就會發生任何事情。 –

+0

問題與螺旋鎖有關嗎? – Recker

回答

0

共享資源在被更新/讀取時將不得不被鎖定。我猜消費者可以將資源複製到自己的緩衝區中?還是會花費很長時間?

2

您可以擁有一個原子指針,消費者通過它讀取生產者生成的內容。一旦生產者生成新的數據,改變原子指針的值來指向新的數據。