- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以解释gen_server:start()
和gen_server:start_link()
有什么区别吗?
有人告诉我这是关于多线程的东西。
编辑:
如果我的gen_server是从多个线程中调用的,它将一次执行所有这些线程吗?还是会在这些线程之间创建并发性?
最佳答案
这两个函数都将新的gen_server
实例作为调用进程的子级来启动,但是它们的不同之处在于 gen_server:start_link/3,4
从原子上启动了gen_server
子级并将其链接到其父进程。链接意味着,如果 child 死了,默认情况下, parent 也将死去。 Supervisors是父进程,当其子进程异常退出(通常是重新启动它们)时,它们会使用链接来执行特定的操作。
除了gen_server:start_link
案例中涉及的链接之外,这些调用中没有涉及多进程方面。无论您使用gen_server:start
还是gen_server:start_link
来启动新的gen_server
,新进程都具有单个消息队列,并且它一次接收并处理这些消息。 gen_server:start_link
并没有导致新的gen_server
进程的行为或执行与以gen_server:start
开始时不同的行为或执行。
关于erlang - 在Erlang中,gen_server :start() and gen_server:start_link()?和有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327206/
我对 Elixir 还很陌生,这是我尝试使用 exrm 发布的第一个应用程序.我的应用程序与 Redis 数据库交互以使用队列中的作业(使用 exq),并且还使用 eredis 将已处理作业的结果存储
有人可以解释gen_server:start()和gen_server:start_link()有什么区别吗? 有人告诉我这是关于多线程的东西。 编辑: 如果我的gen_server是从多个线程中调用
Pheonix 变化如此频繁,以至于我不确定我所做的是否正确。 我正在尝试遵循一些教程,并且在您完成编译后,所有教程都具有“mix phoenix.start”命令,并且应该会启动服务器。 (在 Gi
启动时gen_server来自主管(它本身是由应用程序启动的)我有一个问题,当 start_link gen_server 不返回 {ok, ...}但是 {error, Reason}我看到的唯一错
在 GenServer.start_link/3我可以在本地使用原子为这样的进程注册一个名称: defmodule Worker do use GenServer def start_link
我是一名优秀的程序员,十分优秀!