thread-synchronization

    -1熱度

    2回答

    經過this question with the same title及其答案後,我想嘗試一些應該只使用臨界區域才能真正起作用的東西,因此速度應該快於現有的解決方案(也使用其他內核對象像互斥或信號) 這裏是我的讀/寫鎖定/解鎖功能: #include <windows.h> typedef struct _RW_LOCK { CRITICAL_SECTION readerCount

    1熱度

    1回答

    在progn內部,我必須確保asdf:run-shell-command(需要時間來處理)在下一步之前完成。 (progn (do-data-for-next-command) (asdf:run-shell-command ...) (do-something-when-previous-command-is-done)) 請注意,我使用Clozure CL和S

    0熱度

    1回答

    試圖獲得多線程矩陣乘法以在Java中工作。給出一個(m×n)矩陣,一個(n×k)矩陣和't'個線程來執行操作。 我的程序在矩陣爲正方形時t == n。當以t < n運行時,其他線程不會選取其他操作,並返回部分完成的矩陣。當矩陣不是正方形時,其他線程將返回數組越界錯誤,並且不會運行。我真的很感激任何建議。這裏是相關的代碼片段 開始線程。乘數是MatrixMultiplier的一個數組,它是稍後定義的

    2熱度

    1回答

    這是在其中,我希望得到如下輸出一個消費者 - 生產者問題: 認沽:0 得到:0 認沽:1 得到:1 .. ..等等。 但與此形成對比的是,儘管使用了wait()和notify()方法,但Consumer類仍然多次使用相同的q值,並且生產者類超出了使用者的範圍。我怎樣才能獲得同步輸出? 這是QFixed類:(定義把()和get()方法) class QFixed{ int n;

    0熱度

    2回答

    考慮下面的代碼: // Below block executed by thread t1 synchronized(obj) { obj.wait(0); } // This block executed by thread t2 synchronized(obj) { obj.notify(); } 據我所知,在上面的代碼中,如果t1採取同步塊的所有權,並在

    2熱度

    1回答

    當我運行這段代碼,它會顯示以下輸出: One : 15 Two : 15 One : 14 Two : 14 Two : 13 One : 13 Two : 12 One : 12 One : 11 Two : 11 Thread 1 suspended Two : 10 Two : 9 Two : 8 Two : 7 Two : 6 Thread 1 resumed Thread 2 suspe

    4熱度

    3回答

    此代碼是關於。 競爭條件: 調度和編譯器行爲在進程或線程同步中發揮重要作用。演示同步需求的最簡單場景來自兩個嘗試修改共享變量值的線程/進程之間創建的爭用條件,這通常會導致數據不一致和錯誤結果。以下示例演示了這種情況: 我是C新手,並且遇到此警告正在發生的問題。警告意味着什麼,我該如何解決這個問題。我寫的代碼是在這裏: q1.c: In function ‘runner’: q1.c:13:1:

    1熱度

    1回答

    我想並行化一個腳本,打印出目錄中有多少文檔,圖片和視頻以及其他一些信息。我已將串行腳本放在此消息的末尾。這裏有一個例子來展示它是如何對輸出給定目錄中的信息:現在 7 documents use 110.4 kb ( 1.55 % of total size) 2 pictures use 6.8 Mb ( 98.07 % of total size) 0 videos use 0.0 byt

    1熱度

    1回答

    我是Java中的新手,試圖通過實現學習Java概念。 這裏的ReentrantLock類的理由是理解鎖。 我產卵3線程,在這些我只是增加一個全局計數器。 我正在使用鎖保護其他線程的Counter覆蓋。 import java.util.concurrent.locks.ReentrantLock; class ReentryHandledSingleThread extends Thread

    5熱度

    3回答

    public class MyStack2 { private int[] values = new int[10]; private int index = 0; public synchronized void push(int x) { if (index <= 9) { values[index] = x; Threa