lock-free

    2熱度

    1回答

    我在閱讀Anthony Williams的C++ Concurrency in Action。 在部分「理解鬆散排序」,它具有: 有一些額外的東西,你可以告訴機櫃內的人,如「記下這個號碼,告訴我什麼在底部列表「(交換)」和「寫下 這個數字,如果在列表底部是那個;否則告訴我我應該猜到的是什麼「(compare_exchange_strong),但這並不影響一般的 原理。 這是否意味着這些操作總是按修

    8熱度

    4回答

    我剛纔看到香草薩特的談話:C++ and Beyond 2012: Herb Sutter - atomic<> Weapons, 2 of 2 他表示在執行的std :: shared_ptr的析構函數的錯誤: if(control_block_ptr->refs.fetch_sub(1, memory_order_relaxed) == 0) delete control_block

    8熱度

    1回答

    我在將boost::lockfree::queue<<T, fixed_sized<false>, ..> 置於共享內存中時出現問題。我需要它,因爲我必須要能插入超過65535個消息到隊列中,並fixed_sized隊列與65535 下面的代碼工作正常限制(但capacity<...>選項意味着fixed_sized<true>): typedef boost::interprocess::all

    -1熱度

    3回答

    我想添加幾個單元測試到我的代碼,也因爲我加載插件我不總是有權訪問我正在運行的代碼。 我真的想檢查的測試是否我所調用的函數是無鎖的? 是否有任何鉤子或方法來測試如果在我的程序中的A點和B點之間存在對非鎖定自由函數的調用? 另一個不那麼複雜的函數是如何將所有調用掛接到鎖定函數(如鎖,系統調用...)。我知道如何掛鉤調用malloc在Windows上,但沒有別的。 謝謝您的幫助

    0熱度

    1回答

    混合最終一致性系統和傳統ACID系統是否有任何模式? 我想在大型機上的某些(至少兩個)遺留系統中存儲需要類似ACID事務的數據。這些大型機數據庫(我們稱之爲OldWorld)在同一個進程中的同一個事務管理器下運行,因此大型機系統的一致性不成問題。 我有一個事務管理器,可以在非大型機環境(我們稱之爲NewWorld)中處理與mainframe-tm和ACID-capable關係數據庫的XA事務。 但

    13熱度

    1回答

    我試圖寫一個無鎖的單鏈表。最終一致性不是問題(有人遍歷可能包含不正確項目的列表)。 我認爲我得到了正確的添加項目(循環和Interlocked.CompareExchange)。 但我不知道如何刪除節點(列表中的任何位置),因爲我必須獲取上一個項目,並且它們將Next字段設置爲當前節點Next字段。 class Node { Node Next; object Value;

    6熱度

    2回答

    只有一個寫我想創建一個類有兩種方法: void SetValue(T value)存儲的值,但只允許存儲單個值(否則會引發異常)。 T GetValue()檢索值(如果沒有值,則拋出異常)。 我有以下的慾望/約束: 讀值應該是廉價的。 寫入該值可能(適度)成本高。 GetValue()應該拋出異常只有在先進的日期值不存在(null):它不應該在另一個線程SetValue()通話後扔基於過時null

    2熱度

    3回答

    此代碼片段從ConcurrentQueue執行從here給出。 internal bool TryPeek(out T result) { result = default(T); int lowLocal = Low; if (lowLocal > High) return false; SpinWait spin = new SpinWai

    2熱度

    4回答

    我完全新手在使用CAS指令,因此我對回答這些簡單的問題抱歉,我必須瞭解基本的東西 所以,如果是有可能轉換這段代碼給一些CAS指令使這段代碼線程安全? if (a == 0) { a = 1; return true; } else { return false; } 在現實生活中這樣的代碼看起來像這樣: // 0 - available, 1 - proces

    2熱度

    3回答

    我正在撰寫金融市場數據分銷商應用程序,作爲我的M.S項目的一部分。該應用程序幾乎完成,但該應用程序不能很好地擴展。 這是如何工作的,我訂閱了一個「假」交易所以獲取市場數據。 訂閱後,我得到一個初始快照,然後我收到汽車無...增量 1) Subscribe for IBM. 2) Snapshot : Buy:50|Size:1400||Sell:49|Size:1000 (At buy pri