为何要用elixir编写并发应用

随着cpu数量的增多,程序愈来愈强调并发。

而提到并发,就常常会提到函数式编程。node

函数式与面向对象的主要区别

函数式更强调精确性。
函数式用变形替代了修改。编程

Elixir中的进程

Elixir中的process只占用不多的资源,它们是相互独立的,经过收发消息来交流。
利用process咱们能在一个节点上保持大量的链接。网络

用什么语法来编写并发

一般人们不会用顺序代码来编写并发的程序,而Elixir包含了顺序代码。并发

Fail Fast原则

在并发的程序中,当一个进程出现问题,咱们会遵循Fail Fast(或者说Let Crash)原则。让这个进程从新启动,这样就能不影响到其它进程。函数式编程

Elixir中的监督者supervisor

supervisor负责监视和重启进程。而在上级还有sup的sup来监视sup,最终边界就是咱们的Application。函数

进程之间的通讯

不管进程是在同一个应用内,仍是在不一样的应用中,或是不一样机器上,它们通讯的方式都是相同的。工具

Elixir的三个优点

  • 兼容性 :Elixir与Erlang完美兼容,可使用Erlang中的全部库
  • 扩展性 :带有方便的元编程能力,即macro。适用于编写DSL。
  • 生产力 :完善的文档,工具,hex包。

新建包含Supervisor的项目

mix new foo --supspa

在同一个网络下新建进程

iex --sname foo
iex --sname bar对象

以后咱们就能够在一个进程中执行另外一个进程里定义的函数。 Node.spawn_link(node, fun)进程

相关文章
相关标签/搜索