Golang自学笔记
文章平均质量分 68
学徒筆記
持续学习,不断成长,以更好地迎接未来的挑战。
展开
-
Golang 的三个核心调度模块:G、M 和 P
通过这种方式,Goroutine 在 M 和 P 的协作下实现了高效的并发和并行执行。Goroutine 的创建和销毁成本很低,而 M 的创建和销毁会根据系统负载动态调整,使得 Golang 能够在多核处理器上充分利用硬件并行性。值得注意的是,Goroutine 的调度是由运行时自动处理的,开发者无需手动控制。当涉及 Golang 的 g、m 和 p 时,我们要理解的是 Go 语言运行时(runtime)的内部机制,以及它们之间是如何协作以支持高效的并发和并行的。原创 2023-09-01 10:23:32 · 383 阅读 · 1 评论 -
Golang 协程和线程
Go 运行时能够在相对较少的操作系统线程上同时运行大量的协程,这是通过将协程的调度工作与操作系统的线程分开来实现的。通过协程,开发者可以轻松地编写高效的并发代码,而不必过多地关心底层的线程和锁机制。相反,Go 使用了一种称为“协程(goroutine)”的并发原语,它是一种轻量级的执行单位,由 Go 运行时进行调度,而不是由操作系统的线程来管理。因此,尽管 Go 中没有像传统编程语言中那样直接暴露线程的概念,但通过使用协程,开发者可以实现高效且安全的并发编程,而不必过多关心底层线程的管理和同步问题。原创 2023-08-28 14:59:23 · 159 阅读 · 1 评论 -
Golang的并发编程和 Goroutines 工作原理
在Golang中,并发编程是通过Goroutines和Channels来实现的。Goroutines是轻量级的执行线程,可以在一个程序中同时执行多个任务,而Channels则用于在Goroutines之间进行通信和同步。总结:Golang的并发编程通过Goroutines和Channels实现,Goroutines是轻量级的执行线程,通过调度器进行管理,而Channels用于Goroutines之间的通信和同步。它们是轻量级的执行单元,相比于传统的操作系统线程,创建和销毁Goroutines的开销很小。原创 2023-08-28 14:49:59 · 55 阅读 · 1 评论 -
Golang配置文件用ini还是用yaml?
Golang配置文件用ini还是用yaml?原创 2023-08-29 09:49:52 · 213 阅读 · 0 评论