gpt4 book ai didi

erlang - 当你在 Erlang 中需要高性能共享状态时你会怎么做?

转载 作者:行者123 更新时间:2023-12-02 04:28:18 25 4
gpt4 key购买 nike

Erlang 擅长通过不共享状态来清理事物。但是当您确实想要共享状态时会发生什么?例如:配置选项、统计数据收集、事件/回调服务器。生成一个具有某些记录作为状态的新进程或使用进程字典是实现共享状态的一种方法。您将一遍又一遍地循环该过程并回复任何消息。多个进程只会使用本质上不纯的 getter 和 setter 函数来查询该进程,这些函数包装了消息传递,但在这里我们只是将 Erlang 变成了一个不纯的对象,它比 java 对象慢,因为轮流的归约系统比只拥有慢每个全局状态周围的内存互斥体。如果不小心,甚至有可能出现邮箱溢出的情况。

如果您想要快速共享状态,该怎么办? Reddis,数据库,mnesia,产生循环状态?如何在 erlang 中使集中式状态更加纯粹地发挥作用?

最佳答案

使用公共(public)(任何人都可以读或写)或 protected (一个写入器,多个读取器)ets table使用 named_table 选项创建。每个需要访问表中共享状态的进程都可以通过其名称来访问该表。

关于erlang - 当你在 Erlang 中需要高性能共享状态时你会怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32673193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com