首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

erlang容易实现生产者消费者

2013-07-08 
erlang简单实现生产者消费者-module(procedure).-export([procedure/2,consume/0]).consume() - receiveX

erlang简单实现生产者消费者
-module(procedure).-export([procedure/2,consume/0]).consume() -> receive X -> case X<10 of true ->io:format("production consume ~w~n",[X]),consume();false ->io:format("work done ~n") end end. procedure(Pid,Num) when Num=<10 -> Pid ! Num, timer:sleep(500), procedure(Pid,Num+1); procedure(Pid,Num) -> io:format("work done ~n").

?

erlang感觉语法蛮有意思的 就写了写?

调用:

26> c("procedure").procedure.erl:18: Warning: variable 'Num' is unusedprocedure.erl:18: Warning: variable 'Pid' is unused{ok,procedure}27> Pid=spawn(fun procedure:consume/0).** exception error: no match of right hand side value <0.106.0>28> f().ok29> Pid=spawn(fun procedure:consume/0).<0.110.0>30> procedure:procedure(Pid,0).production consume 0production consume 1production consume 2production consume 3production consume 4production consume 5production consume 6production consume 7production consume 8production consume 9work donework doneok

?

内容也很简单 一个消费者监听着 生产者每隔0.5秒发送一次信息给消费者 消费者输出 一共循环10次(参数是0的话)

?

erlang编程一些语法细节蛮蛋疼的...

比如 if?receive和case中每项用的是 ; 然后最后一项不要写符号 因为后面跟了个end

并列的语句之间写 ,?

不注意就会写错

热点排行