当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang alias()用法及代码示例


alias() -> Alias
OTP 24.0
alias(Opts) -> Alias
OTP 24.0
类型:
Alias = reference()
Opts = [explicit_unalias | reply]

创建一个别名,在向创建该别名的进程发送消息时可以使用该别名。禁用别名后,使用该别名发送的消息将被丢弃。可以使用以下命令停用别名unalias/1。目前可用的选项alias/1


explicit_unalias

只能通过调用 unalias/1 来停用别名。如果未传递任何选项或调用 alias/0,这也是默认行为。


reply

当收到通过别名发送的回复消息时,别名将自动停用。别名仍然可以通过调用 unalias/1 来停用。

例子:

server() ->
    receive
        {request, AliasReqId, Request} ->
            Result = perform_request(Request),
            AliasReqId ! {reply, AliasReqId, Result}
    end,
    server().

client(ServerPid, Request) ->
    AliasReqId = alias([reply]),
    ServerPid ! {request, AliasReqId, Request},
    %% Alias will be automatically deactivated if we receive a reply
    %% since we used the 'reply' option...
    receive
        {reply, AliasReqId, Result} -> Result
    after 5000 ->
            unalias(AliasReqId),
            %% Flush message queue in case the reply arrived
            %% just before the alias was deactivated...
            receive {reply, AliasReqId, Result} -> Result
            after 0 -> exit(timeout)
            end
    end.

请注意,此示例中的服务器和客户端都必须至少在 OTP 24 系统上执行才能使其正常工作。

有关进程别名的更多信息,请参阅进程别名的部分Erlang参考手册.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 alias() -> Alias。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。