erlang并发实践

作者: admin 日期: 2016-11-03 23:52:54 人气: - 评论: 0

-module(test).
-export( [
    d/1,
    d/2,
    main/0
   ]).

d(C)->d(C,50000000).
d(C,N) when N>0 ->
 if
  ((N rem 10000000) ==0) ->
    io:format("~1c \n", C);
  true ->
   ok
 end,
 d(C,N-1);
d(C,0)->ok.
main()->
 spawn(?MODULE,d,["a"]),
 spawn(?MODULE,d,["b"]),
 spawn(?MODULE,d,["c"]),
 spawn(?MODULE,d,["d"]),
 spawn(?MODULE,d,["e"]),
 spawn(?MODULE,d,["f"]),
 spawn(?MODULE,d,["g"]),
 spawn(?MODULE,d,["h"]).

 

执行上面的erlang代码你将会看到控制台乱序输出a~h ,并且如果你的电脑逻辑处理器数量小于8个,cpu将会处于全负荷状态,用erlang创建并发非常简单,远比c++简单,不用考虑多个线程同时抢占控制台等

相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0194秒, 内存占用1.82 MB, 访问数据库13次

闽ICP备15009223号-1