在你的conFib中你发送一个整数,但等待rpc中的元组.应该改为:
conFib()-> receive {Client,N} -> Client ! {self(), regfib(N)} end.
您可以通过after
在收到中使用超时来规避这种情况.
在你的conFib中你发送一个整数,但等待rpc中的元组.应该改为:
conFib()-> receive {Client,N} -> Client ! {self(), regfib(N)} end.
您可以通过after
在收到中使用超时来规避这种情况.
要使计算平行,您可以执行以下操作:
fib(N)-> P1 = spawn(fun test:conFib/0), P2 = spawn(fun test:conFib/0), P1 ! {self(), N - 2}, P2 ! {self(), N - 1}, receive {_, R1} -> R1 end, receive {_, R2} -> R2 end, R1 + R2.
重要的是你在等待答案之前发送两个请求.等待答案的部分当然可以以更美丽的方式完成.