Erlang - 库与服务器

时间:2013-11-19 05:11:27

标签: erlang shared-libraries gen-server

我学习/编写Erlang的次数越多,我就越认识到我必须学习。但在这里,我想确认或消除我一直在做的假设:

假设有两个模块。一个我作为图书馆包装;另一个我打包为服务器。问题:为何区别?

假设:第二个模块中的函数需要保持与系统其余部分隔离的状态或与其他函数同时运行。

这是真的,也是将模块打包为服务器的唯一两个原因吗?

谢谢,

LRP

1 个答案:

答案 0 :(得分:0)

一般来说,你是对的,模块可能只是一组函数。它不存储任何状态,也没有持久化进程。或者它可以是以一个或多个进程的形式维护状态的东西。 通常可以使用gen_server,gen_fsm或gen_event来完成,具体取决于您要将其用于什么

(当然你也可以在mnesia / ets中保持状态)