concurrent-programming

    0熱度

    2回答

    我正在開發一個帶有P2P架構的多人紙牌遊戲,這不是我的決定,該項目已經由我的大學的分佈式系統課程授課。 教授強加的另一個約束是使用Java RMI技術來實現玩家之間的通信層。 我知道如果Java RMI管理併發性「開箱即用」,換句話說,我會知道如果在遠程對象上調用方法時,對象會自動「鎖定」並且沒有對象可以同時調用同樣的方法。 能否將方法聲明爲synchronized是一個很好的解決方案? 謝謝

    3熱度

    1回答

    對於那些不熟悉,下面是用於處理協調Peterson算法: int No_Of_Processes; // Number of processes int turn; // Whose turn is it? int interested[No_Of_Processes]; // All values initially FALSE void enter_region(int process

    14熱度

    4回答

    我的問題是,是否存在用於管理和併發運行具有邏輯相關性的任務的Java框架。我的任務如下: 我有很多獨立的任務(比如說A,B,C,D ...),它們被實現爲命令(就像命令模式一樣)。我希望有一種執行者可以接受所有這些任務並且以並行的方式執行它們。 任務可以相互依賴(例如,我不能運行C,在我運行A之前),同步或異步。 我還想加入自定義的啓發式方法來影響調度程序的執行,例如,如果任務A和B是CPU密集型

    1熱度

    3回答

    我目前正在編寫一個程序,它可以一次運行多個程序,並且可以一次運行多個程序。 if(WAIT_FAILED == WaitForMultipleObjects(numberOfProgramsRan, &information[i].hProcess, TRUE, INFINITE)) { wcerr << L"Failure waiting for process" << endl; } numb

    2熱度

    2回答

    是否有.net 4中添加的所有新併發數據結構的完整列表?或者也許像System.Collections.Concurrent命名空間列表?

    1熱度

    2回答

    我要讓我的代碼multithreadable,爲此我需要修改字典成ConcurrentDictionary。我看了一下ConcurrentDictionary,查了一些例子,但我仍然需要一隻手放在這樣的: 這裏是原來的代碼(單線程) private IDictionary<string, IDictionary<string, Task>> _tasks; public override IDi

    8熱度

    1回答

    我一直在尋找通過Topshelf代碼,並注意它使用稱爲「stact.dll」的組件。目前似乎沒有很多關於這方面的信息。它似乎是一個使用actor和'channels'構建併發應用程序的庫。我發現Topshelf代碼有點難以遵循,但我有興趣瞭解更多關於這種編程風格的內容。有沒有人有這個圖書館的經驗?你是怎麼學習如何使用它的?

    5熱度

    3回答

    我對TCP客戶端 - 服務器通信的結構如下: 在服務器啓動時服務器啓動 受體螺紋,接受客戶 連接並傳遞的ServerSocket 給它。 當客戶端連接到達, 受體線程調用accept()上 的ServerSocket並提交客戶 的處理作業工作線程 (由執行/線程池),並提供客戶端套接字給它。 工人循環從 客戶端套接字流中讀取數據,對其進行處理併發送回復。 問題是如何優雅地停止整個系統?我可以通過關

    3熱度

    2回答

    我對編程相當陌生,現在我已經用Python工作了幾個月。我試圖讓一個概念與Stackless一起工作,但是卻無法弄清楚(雖然我寫了other test scripts與Stackless一起工作)。 作爲一個簡化的例子,任何人都應該考慮下面的代碼,該代碼遍歷一個列表,並通過遞歸調用相同的函數找到它的所有排列(編輯:n維笛卡爾乘積)。 def traverseList(theList,temp,so

    85熱度

    8回答

    在Java中是否存在Mutex對象或創建它的方法? 我在問,因爲用1個許可證初始化的信號量對象不能幫助我。 想想這種情況下: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } 如果有異常情況