0

我正在学习分布式系统,在阅读时我了解了 Lamport Algo 和这篇文章

现在我想实际执行这个算法,但我不想使用不同的客户端。我想在线程中执行此操作。让我困惑的是,线程如何使用时钟时间向所有线程(不同进程)发送消息?

如果有人能给我结构,我怎么能用 Java 做这个 Algo,那会很棒。

4

1 回答 1

3

所以困惑是一个线程如何用时钟时间向所有线程(不同的进程)发送消息?

有很多方法可以做到这一点。您需要一个线程才能向所有其他线程(或至少关心的线程)发送消息。消息总线带有发布者/订阅者机制。一个建议是使用Guavas 的 Event Bus

用手做会更难。您可以让每个线程都有一个BlockingQueue消息,发布者可以将消息添加到所有队列。也许是线程注册和注销自己及其队列的实用程序类。

如果您正在使用某种中央共享队列或消息数组,那么挑战是要知道所有线程何时都使用了特定消息。

于 2013-09-26T21:54:57.903 回答