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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。