mutual-exclusion

    0熱度

    1回答

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

    1熱度

    1回答

    我知道Dekker算法和Peterson算法之類的互斥算法需要一個基本的順序一致的內存模型來工作(或使用內存障礙),但我不清楚他們是否需要原子加載和存儲。在wikipedia entry對彼得森的算法是這樣說: 算法滿足三個基本標準,以解決關鍵的部分問題,只要改變變量轉向,標誌[0],和國旗1立即並自動傳播。 我不清楚上面引用的位以及是否意味着該算法需要原子加載和存儲才能工作。看看彼得森的算法,我

    0熱度

    1回答

    有兩個線程。一個是操縱x,另一個是顯示x。如何使用同步,中斷,等待和通知來互相排斥。圖像顯示了這一點。 Execution image 我已經想出了這個解決方案,但如果它的正確IAM不能肯定。 寫 synchronized(x){ x = x + 1; notify(); try{ wait(); } catch(Interrupted

    1熱度

    1回答

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

    0熱度

    3回答

    我目前正在研究信號量和互斥實際如何工作,並遇到以下問題。 我們假設我們在CPU上有兩個內核。我們有兩個進程,每個核心都運行一個進程。現在我們正在呼籲兩個內核的wait()調用,因爲我們希望進入一個關鍵部分:如果兩個內核並行執行代碼 wait(){ while(s.value <= 0) // busy waiting s.value--; } ,初始信號值是1,

    0熱度

    1回答

    Java的原子變量如AtomicInteger如何在內部工作以實現互斥/原子性? 是否有機器指令級別的鎖定會產生更好的性能? 或者原子機器級指令本身與常規的機器指令集相比,它將值從主存儲器複製到寄存器/高速緩存,並在該寄存器上執行操作,然後存儲回主存儲器。

    0熱度

    2回答

    我需要做類似的東西: select * from table1 where type case @param when 1 then EQUAL else NOT EQUAL end 3 選擇所有類型= 3或類型<> 3,取決於PARAM。 Considere大的選擇涉及到很多的表.... 的想法是不一樣複製上選擇「聯盟」 select * from table1 where type = 3

    0熱度

    1回答

    沒有發生 計劃: def inc(n) n + 1 end sum = 0 threads = (1..10).map do Thread.new do 10_000.times do sum = inc(sum) end end end threads.each(&:join) p sum 輸出: $ ruby

    0熱度

    1回答

    我想用模式修改二進制文件。我已經將該文件轉換爲普通的十六進制轉儲文件,其格式爲xxd(來自軟件包vim)。在純文本文件看起來像這樣(沒有尾隨僅換1號線): $ xxd -ps file.bin | tr -d '\n' | tee out.txt 3a0a5354... 我想刪除匹配\x01[^\xFF]*\xFF所有模式(一個令牌開一關令牌和他們之間的一切,除了另一收盤令牌)在原始文件,但

    0熱度

    1回答

    當我complie這個代碼,我可以得到這樣 enter image description here 代碼的結果是這樣的 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <string.h> #include <sched.h> void *thread_entry(void *ptr)