• 使用 Goroutines 池来处理基于任务的操作

    *作者注:使用 Go 语言工作了一段时间之后,我学会了如何使用无缓冲 channel 来构建 Goroutines 池,我喜欢这种方式胜于此文章中所展示的方式。话虽如此,此文章在它所描述的场景中依然有巨大价值。* 我在多个场合都被问到为什么使用工作池模式,为什么不在需要的时候启动所需要的 Goroutines?我的答案一直是:受限于工作的类型、你所拥有的计算资源和所处平台的限制,盲目地使用 Goroutines 将会导致程序运行缓慢,进而伤害整个系统的响应和性能。 每个程序、系统和平...

  • Go 程序在 macOS 上的打包功能

    这篇文章简单地说明了如何在 macOS 上打包一个 Go 的程序,包括引用或者不引用外部资源。作为一个原生的 Cocoa 程序它是可以下载、安装和运行的。开发过程并不需要 XCode,cgo 或者其他特殊的库文件。 在此文章结尾处,你的 Go 程序将会被打包进一个 `.app` 文件,成为一个拖放安装的只读 DMG 文件。这也适用于其他非 Go 语言的程序。 关于这个端到端的解决方案的主题还有其他很多的指导文章,有的讲的比我想要做的内容多很多,有的又是采用不同的方式,而我想呈现给你的...