atomicity

    -1熱度

    2回答

    我正在實現一個日誌,其中多個線程可以寫入一個日誌的List。最後一個線程應將List的內容寫入文件。因此,最後寫入List的線程應將List刷新到文件中。什麼是完成這個最好的方法? 對於List我只需要一個對多個編寫者和一個閱讀器有效的併發類。

    1熱度

    2回答

    我有一個mongodb數據庫,其中有多個節點進程讀取和寫入文檔。我想知道如何才能做到這一點,因此一次只能有一個過程處理文檔。 (某種鎖定)在該進程完成更新該條目後釋放。通過每個條目一一用光標 城: 我的應用程序應做到以下幾點。 (鎖定項,以便其他進程可以使用它) 獲取來自第三方網站的信息。 計算新信息並更新條目。 (解鎖文件) 而且解鎖文件後,就沒有必要對其他進程更新了幾個小時。 後來我想設置多個

    0熱度

    1回答

    這個特定的案例是關於列表和項目。 相同的項目可能屬於多個列表,每個列表都有很多項目。 選項A(我理解它的「正確」方式):創建一個連接表,它具有list_ID和item_ID。當我想要list_ID列表查詢中的所有項目時。 選項B(打破原子性規則):製作一個列表表格。主鍵,並重複列或非原子列。據我所知,這兩種偏差都有同樣的缺點,即無法低效地查詢項目。 據我所知,正常化數據庫到NF-1將確保每列是原子

    0熱度

    1回答

    是否有必要使用Save data as transactions TECHNIC如果值只增加了?在這個例子中火力地堡DOC social blogging app的starCount可以去UPP或降低,所以it's邏輯使用事務TECHNIC權利。但是,如果價值只會增加,我認爲交易技術是不正確的?要麼? 多個用戶同時增加價值。

    1熱度

    1回答

    中可以說我有看起來像這樣的集合稱爲用戶文檔: { name: 'vic', <-- unique index ownedItems: ['paperclip-1252', 'stapler-1337'] } ownedItems是在其他一些項目集合唯一索引標識符數組。現在,假設我想向ownedItems數組添加一個元素,但是我想強制執行以下規則:無法更新用戶的ownedI

    3熱度

    2回答

    爲了讓事情變得簡單並且爲了專注於我的問題的核心,讓我們假設由指針變量ptr在本地尋址的內存位置在幾個進程之間共享。我特別使用C/++中的MPI共享內存窗口來分配和共享內存。要具體,讓我們說ptr引用一個浮點變量,所以在當地我們有 float* ptr; 現在假設所有進程嘗試寫入相同的值const float f到PTR,即 *ptr = f; 我的問題是:考慮到所有進程試圖以相同的方式修改

    11熱度

    2回答

    Delphi 10.2(支持Linux)具有與Windows InterlocekdEchange等效的跨平臺功能AtomicExchange。到目前爲止這麼好... 我必須使用InterlockedExchangeAdd端口的Win32代碼,它沒有AtomicExchangeAdd等價物。 我的問題是:在編譯Linux時,我可以用什麼來替換InterlockedExchangeAdd?

    -1熱度

    2回答

    這是cuda線程,內存中的問題,它返回單線程結果「100」,但期望9個線程結果爲「900」。 #indudel <stdio.h> #include <assert.h> #include <cuda_runtime.h> #include <helper_functions.h> #include <helper_cuda.h> __global__ void test(int

    2熱度

    2回答

    我有一個原子fs,我正在更新遞歸函數freq-seq這是保存我的計算結果的值。我有另一個功能mine-freq-seqs開始freq-seq,當mine-freq-seqs完成後,我想收到所述原子的最後一個值。所以我想我會做它像這樣 (ns freq-seq-enum) (def fs (atom #{})) (defn locally-frequents [sdb min-su

    3熱度

    2回答

    關於記憶可視性的小問題。 CodeSample1: class CustomLock { private boolean locked = false; public boolean lock() { if(!locked) { locked = true; return true; } return fals