簡體   English   中英

Fober等人的無鎖FIFO隊列:多個消費者和生產者?

[英]Fober et al Lock-Free FIFO Queue: multiple consumers and producers?

我想知道在Fober等人的論文http://nedko.arnaudov.name/soft/L17_Fober.pdf中提出的fifo隊列是否是一個多用戶並產生了fifo隊列。 如果沒有,哪個是最好記錄的多個消費者和生產者FIFO隊列?

謝謝

我沒有閱讀論文,但我在這里做了一個很大的假設:本文使用CAS(比較和交換)技術來實現並發。

無鎖並不意味着無塊。 使用CAS將阻止其他線程,但至少有一個線程將始終“向前”移動。

多個生產者都寫入同一個隊列 - 這不是問題。 棘手的是多個消費者。 如果每個消費者必須訪問數據,那么我將通過多個隊列實現該數據,並且數據在一個處理后將落入下一個隊列。 如果你的意思是通過線程的多個消費者,那么這將適用於上述方法

是。 閱讀“3.1線性化”部分,pop操作假設可能發生並發出列。 這意味着多個線程將能夠使用隊列。

我不知道“Fober隊列”,但已經將無鎖FIFO寫為環形緩沖區。 相對容易的是“無互鎖”隊列,這意味着讀者不會阻止寫入者,反之亦然,但必須對多個讀者進行序列化,並且多個作者必須也是如此。 所以它不是完全無鎖,但讀者和作者之間仍然沒有鎖定/阻塞。

也許有更好的方法可以減少鎖定,但也許這對你有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM