Erlang并发编程基础(学习总结)

来源:互联网 发布:手机视频聊天软件 编辑:程序博客网 时间:2024/06/06 20:30

1.什么是并发

            在计算机操作系统中,并发指的是在一段时间内,有多个程序处于已经启动运行且还没有结束运行的状态,并且这几个程序都是在同一个处理机上运行的,但任一时间上只有一个程序在处理机上运行。

       并行是指:一组程序按照独立异步的方式执行,互不抢占CPU资源(并排行走,互不干扰)。

     (多核CPU能运行并发程序和并行程序,而单核CPU能运行并发程序但不能运行并行程序)。

    两者的区别在于:1、时间间隔和时刻点的区别;2、计算机处理方式上的区别。


2.并发的好处

  • 性能提升:随着多核CPU的普及,并发程序将拥有更好的性能。
  • 扩展性:并发程序一般由多个小型的、独立的进程所组成,所以,增加进程的数量和添加更多的CPU就能够轻松的扩展系统。
  • 更清晰:在现实世界很多事情都是并发的,但很多编程语言都是顺序执行的,现实世界的并行和编程语言中的顺序就给我带来很多麻烦,在Erlang中很容易将现实世界的并行性映射到Erlang的并发性上,也就让我们的程序架构和代码变得更加清晰和易于理解。

3.并发实践

    现在在两个节点上进行erlang通信。
      (注意:在分布式Erlang系统中,“节点”指一个可参与分布式Erlang事务的运行着的Erlang系统。)
erl -name "wm1@192.168.0.0"   打开dos窗口输入此句,创建一个以”自定义名称“+@+”ip”为名称的节点;再打开一个窗口,创建一个“wm2@192.168.0.0”的节点,注意名字不同。
net_adm:ping('wm2@192.168.0.0').   在第一个节点窗口输入此句来ping第二个节点,显示pong表示ping通。
node(). 可查看当前节点名称。
nodes(). 可查看与当前节点连接的节点。
rpc:call('wm2@192.168.0.0', erlang, node, []).   在第一个节点窗口输入此句,调用rpc模块的函数来获取第二个节点的名称。正确显示节点名称。
原创粉丝点击