企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
硬件制造商正在为处理器添加越来越多的内核以提高性能。所有数据中心都在这些处理器上运行,更重要的是,今天的应用程序使用多个微服务来维护数据库连接,消息队列和维护缓存。因此,开发的软件和编程语言应该可以轻松地支持并发性,并且应该能够随着CPU核心数量的增加而可扩展。 但是,大多数现代编程语言(如Java,Python等)都来自90年代的单线程环境。虽然一些编程语言的框架在不断地提高多核资源使用效率,例如 Java 的 Netty 等,但仍然需要开发人员花费大量的时间和精力搞懂这些框架的运行原理后才能熟练掌握。 go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。 go是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性” 很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和 I/O 吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。 Go语言的并发是基于 `goroutine` 的,`goroutine` 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 `goroutine`,并将 `goroutine` 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个 `goroutine` 的消耗非常小(大约2KB的内存),你可以轻松创建数百万个 `goroutine` 。 `goroutine` 的特点: 1. 可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。 2. 启动时间比线程快。 3. 原生支持利用channel安全地进行通信。 4. 共享数据结构时无需使用互斥锁。