簡體   English   中英

帶障礙的進程間同步

[英]Inter-Process Synchronization with Barrier

我有一個Java程序,可以並行執行一些計算。 我可以在一台機器上運行它,也可以使用多台不同的機器運行它。

在單台機器上執行時,通過使用java.util.concurrent.CyclicBarrier包中的CyclicBarrier類成功實現了線程同步。 我們的想法是,在繼續計算之前,所有線程必須等待其他線程到達同一點。

當在多個不同的機器上執行時,通過RMI(遠程方法調用)實現進程間通信。 我在這種情況下遇到了同樣的問題,我希望這些進程的線程在繼續之前等待其他進程到達同一點。 我不能在不同的進程之間使用共享的CyclicBarrier對象,因為這個類不可序列化。

在多台機器上的不同進程上執行的線程上獲取此屏障行為的替代方法是什么?

謝謝

您不需要在進程之間傳遞CyclicBarrier。 您可以進行RMI調用,然后使用CyclicBarrier。 我建議你看看HazelCast,它支持分布式Lock和許多其他系列。

恕我直言,我會重新考慮你是否真的需要所有的過程來檢查點,並找到一種方法,以避免首先需要這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM