技术
文章平均质量分 96
darlingtangli
这个作者很懒,什么都没留下…
展开
-
golang 项目实战简明指南
原文地址开发环境搭建golang 的开发环境搭建比较简单,由于是编译型语言,写好 golang 源码后,只需要执行 go build 就能将源码编译成对应平台(本文中默认为 linux)上的可执行程序。本文不再赘述如何搭建 golang 开发环境,只说明下需要注意的地方。从官网下载对应平台的 golang 安装包中包括 golang 的编译器、一些工具程序和标准库源码。早期的 golang ...原创 2018-09-30 19:37:53 · 7298 阅读 · 2 评论 -
golang channel 使用总结
原文地址不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang 的哲学是通过 channel 进行协程(goroutine)之间的通信来实现数据共享:Do not communicate by sharing memory; instead, share memory by communicating.这种方式的优点是通过提供原子的通信原语,避免了竞态情形(race ...原创 2018-11-09 15:41:04 · 1656 阅读 · 0 评论 -
golang 错误处理与异常
原文地址golang 中的错误处理的哲学和 C 语言一样,函数通过返回错误类型(error)或者 bool 类型(不需要区分多种错误状态时)表明函数的执行结果,调用检查返回的错误类型值是否是 nil 来判断调用结果。errorgolang 中内置的错误类型 error 是一个接口类型,自定义的错误类型也必须实现为 error 接口,这样调用总是可以通过 Error() 获取到具体的错误信息而...原创 2018-11-05 19:05:48 · 534 阅读 · 0 评论 -
golang 后台服务设计精要
原文地址守护进程传统的后台服务一般作为守护进程(daemon)运行。linux 上创建 daemon 的步骤一般如下:创建子进程,父进程退出;调用系统调用 setsid() 脱离控制终端;调用系统调用 umask() 清除进程 umask 确保 daemon 创建文件和目录时拥有所需权限;修改当前工作目录为系统根目录;关闭从父进程继承的所有文件描述符,并将标准输入/输出/错误重定向...原创 2018-11-18 15:16:44 · 1283 阅读 · 0 评论 -
golang cgo 使用总结
原文地址CGO 提供了 golang 和 C 语言相互调用的机制。某些第三方库可能只有 C/C++ 的实现,完全用纯 golang 的实现可能工程浩大,这时候 CGO 就派上用场了。可以通 CGO 在 golang 在调用 C 的接口,C++ 的接口可以用 C 包装一下提供给 golang 调用。被调用的 C 代码可以直接以源代码形式提供或者打包静态库或动态库在编译时链接。推荐使用静态库的方式,...原创 2018-11-18 14:53:33 · 8503 阅读 · 0 评论