【发布时间】:2019-06-17 17:25:13
【问题描述】:
我正在构建一个客户端/银行 erlang 项目,我希望将一个元组列表传递给各个线程(ProcessID),以便每当一个线程更改列表中的某些值时,其他线程/进程也可以在同一个副本上工作名单。
这是必需的,因为我希望客户线程进行一些计算并从银行扣除余额。 到目前为止,我能够为所有银行和客户创建一个流程,并且客户能够调用银行流程并扣款,但这种扣款只发生在客户流程拥有的银行列表副本中。 我怎样才能拥有元组列表的通用/全局副本或按引用传递的副本,以便它可以由不同的进程相互处理。
Pid = spawn(customer, bazCust, [Name, Loan]),
T = {Name, Pid, Loan},
Pid ! {self(), Name, Loan, Pid, BankPidList},
get_feedback(),
我在上面使用的 BankPidList 如下所示:
[{rbc,<0.2067.0>,800},{bmo,<0.2068.0>,700},{ing,<0.2069.0>,200},0]
我对 Erlang 很陌生(才 4 天),所以可能有一些艺术我没有非常有效地使用,但我现在只需要在不考虑效率的情况下完成功能。
【问题讨论】:
-
你见过ETS(Erlang Term Storage)吗? Erlang 中没有全局变量。我认为您必须使用 ETS 表。
-
还没了解。如果 ETS 表可以解决我的问题,我会看看这个。
标签: erlang