摘要:
概述 之前学习的 Agent,GenSever以及GenEvent,都是用来管理状态或者处理消息的。 但是在很多时候,我们需要的是执行某个任务,这时如果使用 GenSever 或者 GenEvent,就会显得比较笨重。 这时,我们就可以使用 Task 模块,使用 Task 模块时注意以下几点: 1. 阅读全文
摘要:
概述 GenEvent 是事件处理的通用部分的抽象。 通过 GenEvent ,我们给已有的服务 动态 的添加 事件处理。 GenEevent 和 GenServer 的区别 之前已经介绍了 GenServer ,GenServer 和 GenEvent 的主要区别在于: GenServer 是服务 阅读全文
摘要:
golang 的语法和使用方式都非常简单明了,没有花哨的语法糖,也没有多余的关键字。 但是即使是这么简洁的语言,仍然有一些不那么直白,需要注意的地方,比如下面2点。 interface 赋值 nil Pointer 之后,变成 non nil interface 由2部分组成, type 和 val 阅读全文
摘要:
概述 如果我们需要管理多个进程,那么,就需要一个专门的 server 来集中监控和控制这些进程的状态,启停等。 OTP 平台中的 GenServer 就是对这个 server 通用部分的抽象。 利用 GenServer 中已经提供的通用操作, 可以很方便的开发出可靠,健壮的程序。 下面首先通过一个示 阅读全文
摘要:
概述 elixir 本身是一种 immutable 的语言,默认情况下,进程间是不共享任何状态的,进程之间通过消息来交互。 而 Agent 则封装了一种进程间共享状态的方式,通过这种方式,不用显式的写 send/receieve 的代码,就能方便的在进程之间共享状态。 使用方法 不用 Agent 来 阅读全文
摘要:
安装 MAC 平台用 brew 安装 如果没有 erlang 环境,上面的命令会自定安装 erlang 的环境。 基本数据类型 数学运算 / 总是返回浮点数,如果需要整数运算,使用 div 和 rem 函数 二进制,八进制,十六进制表示方式 原子 原子是一种常量,变量名就是它的值。有2种写法: 1. 阅读全文
摘要:
概述 mix 是 elixir 工程的构建工具,利用 mix,可以快速方便的创建 elixir 工程,写单元测试,管理 elixir 包的依赖管理等等。 我觉得刚开始学习 elixir 的时候,先简单看看 mix 的用法,也方便学习中写些 elixir 的小例子。 本文环境基于: 使用 mix 管理 阅读全文
摘要:
概述最近使用golang开发项目时, 发现有时需要同时进行多个golang项目.在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), 而且编译的时候也不方便(如果不指定项目, 就会编译所有的项目).于是, 就想如何将各个项目在物理上就隔... 阅读全文
摘要:
并发概要随着多核CPU的普及, 为了更快的处理任务, 出现了各种并发编程的模型, 主要有以下几种:<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides" <colgroup <col class... 阅读全文
摘要:
目录1. 写在前面的话2. 介绍3. 代码组织3.1. 工作区3.2. GOPATH 环境变量3.3. Package 路径3.4. 第一个 GO 程序3.5. 第一个 GO 库3.6. Package name4. 测试5. 远程 package6. 下一步7. 获取帮助# 写在前面的话本文为Go... 阅读全文