alias() -> Alias
OTP 24.0alias(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 all用法及代码示例
- erlang allocations(Options)用法及代码示例
- erlang all(Pred, Q :: queue(Item))用法及代码示例
- erlang asin用法及代码示例
- erlang acos用法及代码示例
- erlang atan用法及代码示例
- erlang abs用法及代码示例
- erlang any用法及代码示例
- erlang append用法及代码示例
- erlang atom_to_list用法及代码示例
- erlang atom_to_binary用法及代码示例
- erlang absname(Filename)用法及代码示例
- erlang abs(Float)用法及代码示例
- erlang adler32(OldAdler, Data)用法及代码示例
- erlang adler32_combine(FirstAdler, SecondAdler, SecondSize)用法及代码示例
- erlang append_element(Tuple1, Term)用法及代码示例
- erlang apply(Module, Function, Args)用法及代码示例
- erlang atom_to_binary(Atom, Encoding)用法及代码示例
- erlang atom_to_list(Atom)用法及代码示例
- erlang any(Pred, Q :: queue(Item))用法及代码示例
- erlang atomic_load(Modules)用法及代码示例
- erlang append(Key, Value, Orddict1)用法及代码示例
- erlang append_list(Key, ValList, Orddict1)用法及代码示例
- erlang add_handlers(HandlerConfig)用法及代码示例
- erlang adler32(Z, PrevAdler, Data)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 alias() -> Alias。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。