Go并发编程实战
2017-03-24
第一部分 Go语言的世界
第1章 初识Go语言
- Go语言特性
- 开源
- 静态类型,语法趋于校本化
- 卓越的跨平台无需移植代码
- 垃圾回收
- 原生并发模型Goroutine, Channel
- 函数式编程范式
- 无继承层次的轻量级面向对象编程范式,采用完全非侵入式的接口。避免了继承的复杂问题,层次更简洁。
- 内含完善全面的软件工程工具。
- 代码风格强制统一。。。。
- 程序编译和运行速度都非常快
- 标准库丰富
- Go的优缺点
- 相比C/C++,Go拥有清晰的依赖管理和全自动垃圾回收机制,因此代码量大大降低,开发效率大大提高
- 相比java,有简明的类型系统,函数式编程范式先进的并发编程模型,因此代码更小更简洁可重用性更高,并在多核计算环境下更快运行
- 相比PHP,Go具有通用性和规范性,适合构建大型软件,性能方面远远超越PHP
- 缺点
- 目前在分布式计算方面,Go的成熟度不及Erlang
- 运行速度不及C,跟Java不相上下
- 第三方库不及其他主流语言,Go还很年轻并在不断增长中
- 语法方面,语法糖不多
- 并发模型强大,但有些“坑”
- 垃圾回收采用”并发标记清除算法ConcurrentMarkAndSweep CMS”,回收垃圾期间会停止所有用户程序操作,对实时性要求比较高的有影响
第2章 Go语言环境搭建
- 工作区结构
- src目录源码
- pkg目录存放经由go install命令构建安装后的代码包.a归档
- bin目录与pkg类似由Go命令生成可执行文件.exe后缀
- 注意命令文件和源码文件的区别:命令文件就是声明属于main代码包,并包含无参数声明和结果声明的main函数的源码文件这里源码可独立运行(go run 命令),也可被go build或go install命令转换为可执行文件。而源码文件则是指存在于某个代码包中的普通源码文件。
- 需要将工作区的目录路径添加到环境变量GOPATH中
- go命令
第2部分 编程基础
第3章 词法与数据类型