在任意时刻,Erlang允许一个模块的两个及两个以上的模块同时运行,可以想象成一个带有四个版本的移位寄存器。一些进程可以运行旧版代码,与此同时,另一些进程可以运行新版代码。
-module(b).
-export([x/0]).
x()->1.
-module(a).
-compile(export_all).
start(Tag)->
spawn(fun()->loop(Tag) end).
loop(Tag)->
sleep(),
Val=b:x(),
io:format(“Vsn3 (~p) b:x()=pn”,[Tag,Val]),
loop(Tag).
sleep()->
receive
after 3000->true
end.
Erlang程序设计(第2版)【瑞典】Joe Armstrong著 牛化成译。