atomic

    0熱度

    3回答

    我有一個T-SQL查詢是這樣的: UPDATE [MyTable] SET [MyField] = @myValue WHERE [Id] = ( SELECT TOP(1) [Id] FROM [MyTable] WHERE [MyField] IS NULL -

    2熱度

    1回答

    我的意思是原子是成功或失敗,什麼都不做。 我知道socketpair(AF_LOCAL, SOCK_STREAM)不是原子的,如果多進程/線程調用write(fd, buf, len),則write()的返回值可能> 0 && < len並導致數據不按順序。 如果多個進程/線程write(buf, len)到由socketpair(AF_LOCAL, SOCK_SEQPACKET)創建的sock_

    1熱度

    1回答

    與來自標準的框架之一原子性質與頭部中給出的A類,看起來像這樣: @interface A : NSObject @property float value; @end B類延伸,覆蓋在某些情況下與組合物類A的轉發邏輯。在這個實現中,B類中的value屬性也是原子嗎? @interface B : NSObject @property float value; @end @i

    1熱度

    1回答

    「Treiber Stack」通常是最簡單的無鎖數據結構之一,因此在教授無鎖算法介紹時經常使用它。 我見過很多使用C++ atomics的Treiber Stacks的實現。算法本身是微不足道的,所以真正的挑戰是處理無鎖數據結構的所有其他附帶細節,例如提供某種方式來執行安全的內存回收,避免ABA問題,並以無鎖方式分配節點。這可以通過各種方式解決,例如使用原子引用計數,危險指針,計數/標記指針以避免

    2熱度

    1回答

    我試圖創建結構變量的原子數組。但我不能將值分配給任何數組元素。 struct snap { int number; int timestamp; }; atomic<snap> *a_table; void writer(int i, int n, int t1) { int v, pid; int t1; a_table

    1熱度

    2回答

    繼Multiple assignment in one line後,我很想知道這對原子數據類型是如何工作的,特別是對於布爾類型的例子。 考慮: class foo { std::atomic<bool> a; std::atomic<bool> b; public: void reset(); [...] //Other methods that

    -1熱度

    1回答

    我寫一段代碼來記錄的請求的NUM。 package main import ( "log" "net/http" "runtime" "sync/atomic" ) var count int32 = 0 func test(w http.ResponseWriter, r *http.Request) { count = atomic

    0熱度

    1回答

    什麼是放鬆對ThreadMethodOne中的加載變量valA和valB的同步的最正確方法(假設valA和valB沒有錯誤的緩存行共享)?似乎我不應該改變ThreadMethodOne使用memory_order_relaxed來加載valA,因爲編譯器可能會在valB.load之後移動valA.load,因爲valB.load上的memory_order_acquire不能保護valA不會在va

    0熱度

    1回答

    是否有可能在shared_ptr的atomic_compare_exchange_strong中與原始指針進行比較? 像這樣: struct Chunk{ // atomics std::shared_ptr<Chunk> prev; std::shared_ptr<Chunk> next; }; // chunk is guarantee

    -1熱度

    1回答

    是否有可能 - 在redis集羣環境中執行ZADD時 - 所有添加的密鑰最終都不會同時向所有人提供? 我們使用(scala)redis客戶端通過ZADD添加一批密鑰。 然後在X毫秒超時後請求密鑰。 看起來1個批處理鍵有時(很少)缺失,並且僅在幾毫秒後纔可用。 我認爲,在Redis一致性模型中,要麼所有密鑰都足夠複製,因此可用,否則不顯示。因此我不明白如何可能丟失一個單一的密鑰。 集羣環境中的正常R