【发布时间】:2016-01-07 01:35:30
【问题描述】:
我知道这不是一个理想的问题,但我会尽力解释它:)
首先,我的任务是创建具有多部电梯的建筑物的模拟。
假设我的建筑物由 2 到 5 部电梯和任意数量的楼层组成。这里的目标是让“人”登上电梯并前往不同的楼层。
这里的重点是同时运行每个电梯。
我已经设法在 C++ 中为每个电梯使用一个线程来做到这一点。我正在努力做的是想一个简单的方法来使用 Erlang 中的消息传递来做到这一点。我不是要代码答案,而是要解释如何使用消息传递来解决此问题。我当然试图阅读有关该主题的信息,但这让我感到困惑。
到目前为止,我了解线程必须通过相互传递消息进行通信。非常感谢任何帮助澄清这方面的方法。这不是作业或任何评分,是我的知识练习。
最后一个问题: 如何使用消息传递(在 Erlang 中)对具有多个编程为独立运行的电梯进行建模。
【问题讨论】:
-
“C++ 中的[..],每个电梯都有一个线程。”在 Erlang 中,你也会这样做。这些线程是否相互通信?在 Erlang 中,您为此使用消息传递。
-
是的,他们做到了。抱歉,我意识到,我只是在努力如何通过消息设计电梯的交互,这是一个有点陌生的概念,由于某种原因我无法完全理解
-
C++ 中的线程是如何通信的?
-
试图在所述共享数据上锁定互斥锁的共享变量和函数调用。
-
您无需维护共享状态,而是为每个进程赋予其自己的状态,如果发生任何变化,您将包含更新(和相关数据)的消息发送到所有相关进程。
标签: c++ concurrency erlang synchronization message-passing