今天晚上有点晚了,不过还是坚持每一天写一个程序!
下面的时超时器 :
建设A要想db进程发送一个信息,然后在规定的时间内等待消息的返回,那么A可以设置一个超时器,注意的是在发送消息之前,得先清空消息队列,要不然等译接到的消息可能db还没发送之前的了
read(Key) ->
flush(),
db | {self(),{read,Key}},
receive
{read,R} -> {ok,R};
{error,Reason} -> {error,Reason}
after 1000 -> {error,timeout}
end.
flush() ->
receive
{read,_} -> flush();
{error,_} ->flush()
after 0 ->ok
end.