critical-section

    2熱度

    1回答

    如果嘗試在鎖定語句中排列作業,會出現錯誤。 lock (lockObj) { BackgroundJob.Enqueue(() => MyJob()); } 它抱怨分佈式交易被禁用。但我不希望我的鎖對作業處理產生影響。如果我啓用MSDTC,它會保持鎖定,直到作業處理完成爲止?這與我所需要的相反。 這是不方便移動的鎖塊外BackgroundJob.Enqueue()電話,因爲這可能

    0熱度

    1回答

    我看了一下互斥的幾個例子,我能理解他們大多數人的運行,除了下面的例子遞給我: boolean[] flag = new boolean[2]; 一個while-條件取決於另一個進程的標誌[n]狀態。 因此,爲了例如P1進入它的關鍵部分,flag[0]和flag[1]都需要設置爲true。 據我interpertation整個運行將有看起來像這樣: P1 - > flag[1] = true

    1熱度

    1回答

    我一直在尋找一種方法來鎖定一段特定的代碼。 namespace x { public class y { private Object obj = new Object(); private void A() { lock(obj) { //critical section }

    1熱度

    1回答

    拿這個僞代碼, Semaphore S <- 0 non-critical section wait(S) critical section signal(S) 這是否解決了關鍵的部分問題,相互支持,僅排斥? 我知道自從臨界區永遠不會到達死鎖狀態,但是這也意味着它不支持互斥。

    1熱度

    2回答

    我想了解peterson的同步解決方案。作爲參考,我附上了閱讀的來源: 這是來自維基百科頁面。現在, 假設P1想要進入關鍵部分。它設置了flag 1 = true和turn=0。如果P0已經處於臨界區,則P1將繼續等待while(flag[0] == true && turn ==0)的。 我的疑問是: 的情況下,會發生什麼:P1執行其while循環,當P0只是試圖進入臨界區,並執行 線flag[

    0熱度

    1回答

    我是C++新手,在我的程序中我有一個擁有私有成員的類(CRITICAL_SECTION csPtr)。 在我的構造函數中調用了​​。 我的問題是,我需要在我的析構函數中調用DeleteCriticalSection(&csPtr)嗎?

    0熱度

    1回答

    我想在用戶和內核空間之間構造兩個共享隊列(一個命令隊列和一個回覆隊列)。這樣內核就可以向用戶空間發送消息,用戶空間在完成處理後可以向內核發送回覆。我所做的是使用爲用戶空間分配內核內存頁面(用於隊列)和mmap,現在用戶和內核都可以訪問這些頁面(這裏我指的是在內核空間中寫入的內容可以正確讀取在用戶空間中,或反之亦然)。 問題是我不知道如何在內核和用戶空間之間同步訪問。假設我要爲多製造商1用戶方案構建

    2熱度

    1回答

    爲了出示擔保界等待的測試和設置指令,下面是操作系統的書,高爾文給出的代碼 - : do { 1 waiting[i] = true; 2 while (waiting[i] && test_and_set(&lock)) ; 3 waiting[i] = false; /* critical section */ 4 j =

    -1熱度

    1回答

    我試圖並行以下解碼功能(從二進制代碼爲int)並行化解碼功能: int decodePrimeFactorization(int code){ int prod = 1; #pragma omp parallel for for (int j=0; j<PF_NUMBER ; j++){ #pragma omp critical {

    0熱度

    1回答

    我想在cuda中實現關鍵部分。我在這個主題上閱讀了很多問題和答案,答案通常涉及到atomicCAS和atomicExch。 然而,這並不在經一級的工作,因爲在經所有線程獲取該atomicCAS後相同的鎖,從而導致死鎖。 我覺得有一種方法有使用經__ballot或__any指令CUDA一個真正的鎖。 然而,多次嘗試後,我沒有得到一個滿意的(讀工作)解決方案。 有沒有人在這裏有一個很好的答案呢? PS