2012年9月5日

erlang 代码加载和热替换实验

摘要: 主要涉及到的模块是code模块code:purge---------------------------------------------------------------------------------------------------------------清理内存中的代码purge(Module) -> boolean() ,不论是否旧代码被使用都清理,杀死使用旧代码的进程Types:Module = module()Purges the code forModule, that is, removes code marked as old. If some proces 阅读全文

posted @ 2012-09-05 16:12 fangjie008 阅读(1932) 评论(0) 推荐(2) 编辑

2012年9月4日

erlang搜索目录总结

摘要: 启动erlang的时候会有默认的搜索路径,当然我们可以人为设置搜索路径,设置的方法一般有:一 .erlang 文件设置的方法:1>获得home路径:启动erlang,输入init:get_argument(home).2>在上一步获取的home目录下建.erlang文件(注意windows不允许没有文件名的文件,所以我们可以使用editplus等工具保存), 里面加上启动erlang就执行的代码,这里我们可以添加搜索路径:code:add_patha(".").code:add_pathz("D:/"). 保存文件,再启动erlang的时候, 阅读全文

posted @ 2012-09-04 14:52 fangjie008 阅读(1086) 评论(0) 推荐(0) 编辑

2012年8月28日

关于erlang link进程间需要注意的一个问题(normal退出信号)

摘要: 下面是测试代码,我们启动两个进程,两个进程间进行链接,但是发现在 一个进程结束的时候另一个进程竟然没有跟着一起结束,从打印看也没有接到任何消息t() -> spawn_link(fun() -> a() end).a() -> receive c -> X = spawn_link(fun() -> b() end), io:format("pid:~p",[X]), a(); E -> io:format("a msg:~p",[E]) end.b() -> receive Msg -> io:forma 阅读全文

posted @ 2012-08-28 16:02 fangjie008 阅读(1145) 评论(0) 推荐(0) 编辑

2012年8月17日

关于erlang:link的一个死循环-有空研究

摘要: 在做实验的过程中偶然遇见了这个问题参数传递错误link(1).** exception error: bad argument in function link/1 called as link(1) link(Pid). Pid存在的话返回true,否者返回 ** exception error: no such process or port in function link/1 called as link(<0.107.0>)而如果我们又这样的一段代码(如下),在init中link一个进程,而当前进程挂载在supervisor下面,当link进程死掉... 阅读全文

posted @ 2012-08-17 11:24 fangjie008 阅读(359) 评论(0) 推荐(0) 编辑

2012年8月16日

关于supervisor 挂载woker和worker linke worker 的同样的结束等待

摘要: supervisor可以等待子worker结束后销毁自身,但是有的情况下我们并不是所有的进程都挂载在supervisor下面,而是link互相关联1.这是都挂载在sup下面的情况2.例如:这是link到worker的情况现在我想让进程stop的时候,95不直接结束而是等待96结束后再结束那么应该怎么办呢我们可以通过erlang:moniter/2来达到目的, 可以参考supervisor相关代码,在95的terminate方法下面下如下代码,注意要合理设置after时间terminate(Reason, State) -> ?Error(debug_logger, "e_tes 阅读全文

posted @ 2012-08-16 16:41 fangjie008 阅读(247) 评论(0) 推荐(0) 编辑

supervisor start_child 注意

摘要: 一.有一个supervisor Module:-behaviour(supervisor).%% API-compile(export_all).%% Supervisor callbacks-export([init/1]).-define(SERVER, ?MODULE).start_link() -> supervisor:start_link({local, ?SERVER}, ?MODULE, []).%% 启动子节点方法,到本supervisor下%% Mod:要启动的模块, Args:启动参数%% 返回值:okstart_child_worker(Mod, Args) -& 阅读全文

posted @ 2012-08-16 16:02 fangjie008 阅读(598) 评论(0) 推荐(0) 编辑

关于erlang application supervisor 进程及子进程结束的几个实验

摘要: 一. application 能够严格保证先启动的后结束,后启动的先结束二. supervisor a.supervisor simple_one_for_one方式启动的子进程在supervisor结束的时候同时通知所有子进程要结束(通过exit信号) 这个在supervisor的文档中有说明: Because asimple_one_for_onesupervisor could have many children, it shuts them all down at same time. So, order in which they are stopped is no... 阅读全文

posted @ 2012-08-16 14:50 fangjie008 阅读(1263) 评论(0) 推荐(0) 编辑

导航