0
再次提到一些關於無鎖的問題...使用QAtomicInt作爲內存圍欄
假設我實現了一個基於數組的簡單循環FIFO整數。 FIFO由2個線程單個生產者,單個消費者訪問。讀取和寫入索引始終在訪問該項目後更新。在單個CPU上,這將是安全的(假設索引的更新操作是原子的),因爲只有一個線程具有對索引的寫入訪問權限。 在SMP機器上,這可能會導致問題,因爲由於其緩存和重新排序,兩個CPU可能會看到索引的不同表示。
QT有跨平臺的原子變量,它們也實現了內存圍欄,使用QAtomicInt使fifo實現SMP安全還是我忽略了一些東西?