文档章节

为什么要用elixir编写并发应用

ljzn
 ljzn
发布于 2016/09/18 20:18
字数 428
阅读 123
收藏 1

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

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

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

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

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 --sup

在同一个网络下新建进程

iex --sname foo
iex --sname bar

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

© 著作权归作者所有

ljzn
粉丝 30
博文 69
码字总数 96245
作品 0
南平
程序员
私信 提问
放弃Python转向Go语言:我们找到了以下9大理由

选自Stream 作者:Thierry Schellenbach 机器之心编译 参与:黄小天、李亚洲 转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从...

机器之心
2017/10/18
0
0
elixir官方入门教程 学习资料

下一步该去哪 构建你的第一个Elixir项目 元编程 社区与其它资源 Erlang基础 想要学习更多?继续阅读! 构建你的第一个Elixir项目 为了开始你的第一个项目,Elixir装载了一个叫做Mix的构建工具....

ljzn
2016/08/06
470
0
放弃 Python 转向 Go?有人给出了 9 大理由

为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较: 原因 2:语言性能很重要 对很多应...

达尔文
2017/10/19
8.3K
67
elixir官方入门教程 进程

进程 和 链接 任务 状态 在Elixir中,所有代码都运行在进程内。进程相互独立,并发地运行,通过传送信息来交流。进程不是Elixir中唯一的并发基础,但它意味着能够构建分布式的,可容错的程序...

ljzn
2016/08/04
56
0
Elixir: 编程语言的未来

这篇文章谈一谈最近火爆的 Elixir,同时说一下对编程语言选择的看法。同时作为 Erlang 发烧友,Elixir 不可不提。即使有了那么多编程语言 Elixir 也值得接触。 现在开始接触 Elixir 对编程语...

oschina
2015/08/02
6.9K
18

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部