作 w3cschool erlang 的练习

---------

 1 -module(tut15).
 2
 3 -export([start/0, ping/2, pong/0]).
 4
 5 %% Erlang 消息传递
 6 %% Erlang 进程之间的消息可以是任何简单的 Erlang 项. 比如说, 可以是列表、元组、整数、原子、进程标识等等
 7 %% recevie 关键字的语法: 请注意, 在 end 前的最后一个 actions 并没有 ";"
 8 %%     receive
 9 %%         pattern1 ->
10 %%             actions1;
11 %%         pattern2 ->
12 %%             actions2;
13 %%         ...
14 %%         patternN ->
15 %%             actionsN
16 %%     end.
17
18 ping(0, Pong_PID) ->
19     Pong_PID ! finished,
20     io:format("ping finished~n", []);
21 ping(N, Pong_PID) ->
22     Pong_PID ! {ping, self()},
23     receive
24         pong ->
25             io:format("Ping received pong~n", [])
26     end,
27     ping(N - 1, Pong_PID).
28
29
30 pong() ->
31     receive
32         finished ->
33             io:format("Pong finished~n", []);
34         {ping, Ping_PID} ->
35             io:format("Pong received ping~n", []),
36             Ping_PID ! pong,
37             pong()
38     end.
39
40
41 start() ->
42     Pong_PID = spawn(tut15, pong, []),
43     spawn(tut15, ping, [3, Pong_PID]).

--------- THE END ---------

转载于:https://www.cnblogs.com/shadow-abyss/p/11171182.html

Erlang消息传递-tut15.erl相关推荐

  1. Golang和Erlang消息传递机制对比

    上一篇文章介绍了 Go 和 Erlang 在调度器的实现,本文将简要介绍这两种并发语言的消息传递机制 简要对比 Erlang和Go虽然在实现及功能上差异较大,但是都支持高并发的轻量级用户任务(Erla ...

  2. 30 分钟学 Erlang

    30 分钟学 Erlang (一) Shawn_xiaoyu https://www.jianshu.com/p/b45eb9314d1e 本文写给谁看的? 那些已经有过至少一门编程语言基础,并且需要 ...

  3. erlang mnesia数据库简单应用

    mnesia是erlang自带的分布式数据库,基于ets和dets实现的.mnesia兼顾了dets的持久性和ets的高性能,可以自动在多个erlang节点间同步数据库.最关键的是,mnesia实现了 ...

  4. java erlang_Java开发人员的Erlang

    java erlang 您可能没有注意到,但是距离我上次发布博客已经过去了几个星期. 这是由于我的Soleus骨折了,而且我的腿是石膏模型. 不能动弹,我认为调查完全不同的东西是个好主意–要么看那一天 ...

  5. Java开发人员的Erlang

    您可能没有注意到,但是距离我上次发布博客已经过去了几个星期. 原因是我的Soleus骨折了,而我的腿也石膏了. 不能动弹,我认为调查完全不同的东西是个好主意–要么看那天的电视,要么,尽管Kojak和M ...

  6. Erlang库 -- 有意思的库汇总

    抄自这里 首先,库存在的目的大致可分为: 1.提供便利 2.尽可能解决一些痛点 首先,我们先明确一下Erlang编程语言的一些痛点(伪痛点): 1,单进程问题 Erlang虚拟机属于抢占式调度,抢占式 ...

  7. erlang的epmd指定端口范围验证及端口权限配置

    2019独角兽企业重金招聘Python工程师标准>>> erlang的epmd指定端口范围验证及端口权限配置 1,简介 erlang的原理与linux系统非常像,有进程的概念,有进程 ...

  8. Linux安装Erlang

    第一步准备安装包 http://erlang.org/download/ 第二步下载完成后使用xftp上传到mnt目录下 第三步 安装相关依赖 yum install make gcc gcc-c++ ...

  9. CentOS 7.7安装Erlang和Elixir

    安装之前,先看一下它们的简要说明 Erlang Erlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统.它通常用于电信,银行,电子商务,计算机电话和即时消息中.Erlang ...

最新文章

  1. launchctl mysql_Mac Yosemite 10.10 下利用 Launchctl 自启动 mysql
  2. HDLBits 系列(5)让三元条件运算符(?:)在你的设计中发挥作用
  3. matlab 摄像头操作
  4. [云炬创业基础笔记]创业计划书常见问题
  5. html 定义函数调用函数,请问HTML function函数怎么定义和调用?
  6. Warning: mysqli_connect()_php链接MySQL8.0_异常
  7. maven 主pom 配置不同环境指定不同配置文件以及打包参数
  8. python2协程_python中的协程(二)
  9. android有关医疗实现功能,基于Android的智能医疗监测系统的设计与实现_问答库
  10. mysql建立聚族索引语句,MySQL学习教程之聚簇索引
  11. 对linux信号量的理解以及实现
  12. MATLAB中Yalmip工具,yalmip工具箱使用问题
  13. 全面讲解 Handler机制原理解析 (小白必看)
  14. Java 方法重载和覆盖重写的区别及注意事项
  15. dockerfile
  16. 南京师范计算机科学研究生分数线,2020南京师范大学考研复试分数线已公布
  17. 表格中使用blockquote出现外边框的解决办法
  18. CMake入门教程【手册篇】CMake生成与编译项目
  19. JAVA美食小屋系统(JAVA毕业设计)
  20. Java数据结构(1.1):数据结构入门+线性表、算法时间复杂度与空间复杂度、线性表、顺序表、单双链表实现、Java线性表、栈、队列、Java栈与队列。

热门文章

  1. Qt如何将数据保存成CSV文件
  2. axios (get post请求、头部参数添加)傻瓜式入门axios
  3. 剑指offer--打印1到最大的n位数
  4. eclipse debug怎么用_利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)
  5. python sftp_python中实现sftp
  6. typescript在ES3(IE7)环境下使用async、await
  7. Confluence 6 在 Apache 或者系统级别阻止垃圾
  8. 算法前戏 递归 二分查找 列表查找
  9. json字符串生成C#实体类的工具
  10. a标签的href与onclick中使用js的区别