在多生產者設置中,有一個生產者線程和一個消費者線程。消費者是否可以將新事件發回相同的環形緩衝區?我假設當緩衝區已滿並且消費者線程在當前事件中工作時永遠不會獲得空閒插槽時,它會中斷。換句話說,發生死鎖。消費者如何回到同一個Disruptor環緩衝區
這樣做的最好方法是什麼?我是否必須引入一種代理線程來接收消費者的事件並將它們發佈到環形緩衝區中,就像普通生產者一樣?
補充 - 爲什麼是它有用嗎? 假設消費者線程正在處理股票市場數據事件,並且需要向市場模擬器(一個類)發送訂單,並且市場模擬器應該將訂單執行事件發送到相同的環形緩衝區,理想的情況是。
除了最簡單的形式,不能有多個生產者嗎?如果是這樣,一個消費者很可能是一個製片人,對嗎?警告:我唯一接觸這種模式的方式來自Martin Fowler的一篇文章。 –
不能有多個生產者嗎? - >是/ *空格*/ 如果是這樣,一個消費者可能是一個製片人,對吧? - >不,不確定的推理。想一想,如果一個線程在已經擁有鎖的時候試圖獲得一個鎖,會發生什麼。 –